2017-07-31 82 views
1

的关系我有这个疑问定义雄辩型号Laravel

SELECT * FROM users AS u INNER JOIN branches AS b ON u.branch_id = b.branch_id 

这意味着每一个user有关联的branch但一个branch可以与许多user关联。

任何人都可以帮助我如何定义这种关系?

我这样做

我写在用户模式

public function branch() 
{ 
    return $this->belongsTo('App\Branch'); 
} 

这种关系,则返回null。

+0

你会违背命名约定。 Laravel可以解决这个问题,但你通常会有一段糟糕的时间。您的“分支”表中的标识符字段应该只是“id”。 – apokryfos

回答

1

您的问题似乎与一对多关系即多对一相反。

在这里,你的情况许多用户属于一个分支。所以,你可以在User模型中定义多对一的关系为:

public function branch() 
{ 
    return $this->belongsTo('App\Branch','branch_id'); 
} 

现在,你可以像这样的用户的访问分支:

$user = User::find($id); 

$branch = $user->branch; 

希望你能理解。

1

你应该试试这个:

public function branch() 
{ 
    return $this->belongsTo('App\Branch','branch_id'); 
} 

希望这对你的工作!

+0

这有帮助,请你解释一下。我正在学习雄辩。 – Alen

+0

@Alen请点击此链接(https://laravel.com/docs/5.2/eloquent-relationships#one-to-many) –