当前位置: 首页 > 知识库问答 >
问题:

Laravel5在两个柱上有许多关系

巩枫
2023-03-14
public function userRelations()
{
    return $this->hasMany('App\UserRelation');
}
select * from user_relations where user_relations.user_id = 17 OR user_relations.related_user_id = 17 

编辑:

我正在使用热切加载,我认为这将影响它的工作方式。

$cause = Cause::with('donations.user.userRelations')->where('active', '=', 1)->first();

共有1个答案

孔乐邦
2023-03-14

我认为不可能完全按照你的要求去做。

我认为您应该将它们视为独立的关系,然后在模型上创建一个新方法来检索两者的集合。

public function userRelations() {
    return $this->hasMany('App\UserRelation');
}

public function relatedUserRelations() {
    return $this->hasMany('App\UserRelation', 'related_user_id');
}

public function allUserRelations() {
    return $this->userRelations->merge($this->relatedUserRelations);
}

这样,您仍然可以在模型上获得快速加载和关系缓存的好处。

$cause = Cause::with('donations.user.userRelations', 
        'donations.user.relatedUserRelations')
    ->where('active', 1)->first();

$userRelations = $cause->donations[0]->user->allUserRelations();
 类似资料:
  • 问题内容: 在两列上可能有hasMany关系吗? 我的表格有两列,和。 我希望我的关系匹配任一列。 在我的模型中 运行查询:。 我需要运行的查询是: 编辑: 我正在使用急切加载,我认为这将影响它的工作方式。 问题答案: 我认为不可能完全按照您的要求去做。 我认为您应该将它们视为独立的关系,然后在模型上创建一个新方法来检索两者的集合。 这样,您仍然可以获得在模型上进行预先加载和关系缓存的好处。

  • 我是ExtJS新手。 我在同一页上有两个网格。第一个网格有3列。只有第二个。问题是,当渲染第二个网格时,它会覆盖第一个网格的属性。 例如,当我试图编辑第一个网格中的行时,它需要第二个网格中的行的宽度。

  • 问题内容: 我的用户收到了很多OutOfMemoryError报告,每个报告都来自同一个Activity,其中包含MapView。我认为这是一个孤立的异常,仅在我的应用程序中只有一个位置,而且我无法弄清楚问题出在哪里。谁能给我一些指示为什么会这样吗? 我已针对此问题删除了一些不需要的代码,因此如果有人认为问题可能在于此,我将其发布。 堆栈痕迹 活动 十字线叠加 DUMPSYS MEMINFO 问题

  • 我试图生成‘小提琴’一样的条形图,但我运行在几个困难中描述了下面······ 将“label”添加为要共享的两个图表的标签时遇到麻烦。 使两幅图之间的标签居中(以及在每个条的垂直中心) 只保留外部yaxis上的刻度(而不是标签要去的内部)

  • 问题内容: 我有以下数据库结构/层次结构: TABLE product_type : TABLE product : parent_id :是product_type ID TABLE treeNode : 它是一个树层次结构(根有n个子节点),层次结构的数量 未知 。 col的值为 “ CATEGORY” 或 “ GROUP” ,这意味着我有2棵树: Categories: Groups: TA

  • 我目前正在用Laravel构建我的第一个应用程序,我偶然发现了一个问题,即我不知道如何设置模型(用户和组)之间的多对多关系。 我已经创建了一个板,其中存储了所有用户和他们所在的组之间的关系。我的问题是,我不知道如何访问和设置这在Laravel。我不确定我是否必须用户has很多或属性。 我正试图找到一种方法,将用户添加到组中,以便在UserGroups表中创建一个新条目。 我的桌子: 用户 ID 集