Laravel:如何在user_id和created_by列之间建立关系

时间:2017-06-16 12:53:42

标签: laravel eloquent laravel-5.4

我有两个表users,它是默认的Laravel Auth表,其中user_id列(不是默认的id列),第二个是我创建的branch表。

我的分支表有一列created_by,用于在创建新分支时存储登录的用户ID。

现在,在前端,我正在显示分支详细信息,我想在其中显示创建它的用户的名称。但是在我的分支表中,我在created_by列中有user_id。

我只能通过Branch::find($id)获取分支详细信息,但它会返回创建它的user_id,因为我希望在那里出现名称。

是否可以通过Eloquent ORM关系实现,或者我需要编写整个查询等。

请指教?

2 个答案:

答案 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