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

定义同一表格上的关系Laravel 5.3

袁成化
2023-03-14

我在我的application.ie有一个参考系统,一个用户可以参考另一个。

用户表

id name 
1   A
2   B
3   C

转介表

id referrer_id referee_id
1      1           2
2      2           3

我想显示用户的推荐。

用户模型

public function referrals()
{
    return $this->hasMany('App\Models\Referral','referee_id','id');
}

推荐模型

public function referrer_user()
{
    return $this->belongsTo('Modules\User\Models\User','referrer_id','id');
}

public function referee_user()
{
    return $this->belongsTo('Modules\User\Models\User','referee_id','id');
}

定义在用户模型中有很多关系,在推荐模型中属于关系,我没有得到预期的结果。

@foreach($user->referrals as $key => $referral)
    {{dd($referral->referee_user->name)}}
@endforeach

这将返回给我用户本身(推荐人)的名称,而不是推荐人的名称

共有1个答案

谭伟
2023-03-14

你用错误的方式指代了很多人的关系。

无论如何,下面的方法会更容易、更有效。

id  name  referred_by
 1   abc    null
 2   def     1
 3   gfd     2

用户模型

/**
 * Who did he bring onboard?
*/
public function referrals(){
  return $this->hasMany('....User', 'referred_by');
}

//Who brought him onboard..
public function referree(){
  return $this->belongsTo('...User', 'referred_by');
}

只需检查适当的语法。

 类似资料:
  • 问题内容: 这是情况:- 我有一个名为“用户”的表。由于所需的大多数数据是相同的,因此它包含学生和导师的用户数据。 完成该系统后,现在我被告知客户希望能够将学生分配给导师。 是否可以通过链接表在一个表内创建一对多关系的合法/干净方法? 我已经尝试过考虑这一点,但是我想出的任何解决方案似乎都是混乱的。 我将不胜感激。 谢谢 菲尔 问题答案: 您是否尝试过以下方法? 例如,创建一个新表(如果需要,请选

  • 你可能想把可选的属性分割到另一个表中。每个扩展都会是一个新的表,其中每一行的唯一标识符是主模型实例的id。 例如: var Person = db.define("person", { name : String }); var PersonAddress = Person.extendsTo("address", { street : String, number : N

  • 在我的属性模型中,我定义了这两个关系 在我的控制器中,我创建一个属性对象,并尝试获取已批准和挂起的图像。 变量是预期的。 然而,只是! 我尝试使用这个答案获取最后一个数据库查询,似乎挂起的查询甚至没有被执行。(最后一次查询运行已批准=1,这是针对关系。) 我怀疑这种关系可能是一个问题,但我被难住了。

  • 我需要在我的数据库中创建多个多对多的关系。 有一个“主”表,我们称之为“项目”。 然后有3个表包含“选项”。 假设我们有:品类、地域、用户。这些保存的唯一信息是项目的名称和ID。 可以将多个类别、区域和用户分配给多个项目。 因此,我有两个选项来创建这种关系: 1)为每个'选项'表创建关系表。每个表包含两列:project_id和category_id、region_id或user_id。使用这种方

  • hasOne关联是一种多对一的关系,意思是你定义的模型可以有多个实例指向一个其它的实例(所属相同模型或不同模型)。 用法 Animal.hasOne(association_name [, association_model [, options ] ]); 描述 association_name是两个模型之间的关系名称‘ association_model是要关联的另一个模型(如果没有定义,假设

  • 本文向大家介绍AngularJS中的Directive自定义一个表格,包括了AngularJS中的Directive自定义一个表格的使用技巧和注意事项,需要的朋友参考一下 先给大家说下表格的需求: ● 表格结构 ● 点击某个th,就对该列进行排序 ● 可以给表头取别名 ● 可以设置某个列是否显示 ● 表格下方有一行显示总行数 我们希望表格按如下方式展示: 以上,datasource的数据源来自co