繁体   English   中英

Laravel Eloquent所有人都有关系

[英]Laravel Eloquent all with relationship

如何从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()调用,但响应为空。

您的用户类是Users还是User 除非你覆盖它,否则Eloquent处理名称的默认方式可以在docs( source )中找到:

请注意,我们没有告诉Eloquent我们的用户模型使用哪个表。 除非明确指定了其他名称,否则该类的小写复数名称将用作表名。 因此,在这种情况下,Eloquent将假定User模型将记录存储在users表中。 您可以通过在模型上定义表属性来指定自定义表

所以我相信如果你将地址模型中的代码更改为:

public function users(){
  return $this->belongsTo('User', 'user_id');
}

它将起作用,因为我们已将Users更改为User

另类方式!

 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');
 }

你需要改变

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');
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM