我有两个表users
,它是默认的Laravel Auth表,其中user_id
列(不是默认的id
列),第二个是我创建的branch
表。
我的分支表有一列created_by
,用于在创建新分支时存储登录的用户ID。
现在,在前端,我正在显示分支详细信息,我想在其中显示创建它的用户的名称。但是在我的分支表中,我在created_by
列中有user_id。
我只能通过Branch::find($id)
获取分支详细信息,但它会返回创建它的user_id,因为我希望在那里出现名称。
是否可以通过Eloquent ORM关系实现,或者我需要编写整个查询等。
请指教?
答案 0 :(得分:1)
您可以将以下方法添加到Branch模型中:
public function createdBy()
{
return $this->belongsTo('App\User', 'created_by', 'user_id')
}
在这种情况下,只需要提供有关外键的信息,即“创建_用于”#。请记住,如果您愿意,可以使用不同的方法命名方法,例如,创建者()或所有者()。
答案 1 :(得分:1)
在模型中添加belongsTo关系。您需要第三个参数,因为您的密钥不是id
。
public function user()
{
return $this->belongsTo('App\Branch', 'created_by', 'user_id');
}
文档链接:https://laravel.com/docs/5.4/eloquent-relationships#updating-belongs-to-relationships