如何从Laravel中的关系中获取表中的所有数据?
所以,我有这样的表:
*users*
id
username
password
...
*address*
id
address
user_id
...
如果我用Address :: all()调用我的雄辩模型,我会得到user_id的响应,并且我想建立获取用户名的关系。
我尝试添加:
public function users(){
return $this->belongsTo('Users', 'user_id');
}
并使用Address::with('users')->get()
致电,但回复为空。
答案 0 :(得分:6)
您的用户类是{@ 1}}还是Users
?除非您覆盖它,否则Eloquent处理名称的默认方式可以在文档(source)中找到:
请注意,我们没有告诉Eloquent我们的用户模型使用哪个表。除非明确指定了其他名称,否则该类的小写复数名称将用作表名。因此,在这种情况下,Eloquent将假定User模型将记录存储在users表中。您可以通过在模型上定义表属性来指定自定义表
所以我相信如果你将地址模型中的代码更改为:
User
它会有用,因为我们已将public function users(){
return $this->belongsTo('User', 'user_id');
}
更改为Users
答案 1 :(得分:0)
替代方式!
class Users extends Model {
//override table
protected $table = 'users';
protected $primaryKey = 'id';
//Your other code here
}
并在地址模型中添加如下
public function users(){
return $this->belongsTo('App\Users', 'user_id');
}
答案 2 :(得分:0)
您需要更改
public function users(){
return $this->belongsTo('Users', 'user_id');
}
到
public function users(){
return $this->hasOne(Users::class, 'user_id');
}
或
public function users(){
return $this->hasMany(Users::class, 'user_id');
}