我正试图弄清楚拉雷维尔的关系,我已经走到了尽头,所以我想我会在这里发布我的第一个问题,希望能弄清楚。我通常可以在这里找到答案,但这次不行。
我有这样的用户表:
然后我有一张状态表
现在,从我收集的信息来看,Elount希望用户id存储在states表中,而不是存储在users表中的states\u id,但这没有意义,因为您必须反复重复这些状态。
在我的用户模型上,我已经尝试过了
public function state()
{
return $this->belongsTo(State::class);
}
和
public function state()
{
return $this->hasOne(State::class);
}
但是我认为它在状态表上寻找外键,而不是用户表。我错过了什么?
我想获得一个所有用户的列表,例如在ShowUserDetails视图中,不需要第二次查询就可以获得他们的状态,从而将所有状态放入一个数组,并从该数组中获取他们的状态。
喜欢
$users = User::with('state')->get();
如果我真的明白你想要什么,你真的必须通过添加第二个参数来更新用户类中的状态方法。
public function state()
{
return $this->belongsTo(State::class, 'states_id'); // if the column name in your users migration is state_id then you might not need the second param.
}
然后,您可以获得与具有状态关系的用户
$users = User::with('state')->get();
我添加了states_id
作为第二个参数,因为这是您在迁移中提供的列名