Laravel 如何与多个结果建立雄辩的关系
问题 我有两个类,用户和帖子。一个用户“有许多”帖子,一个帖子“属于”一个用户。但是当我调用“User::all()”时,它不会自动拉用户的帖子,原因很明显,因为如果我的用户与100个不同的表有关系,那么拉所有的用户就会变得非常庞大 问题 有没有一种方法可以在一行或几行代码中拉取所有用户和所有用户->帖子,而不必经过foreach循环 我知道我可以使用mutator,但问题是我的字段名为user_id,我已经用以下代码对其进行了测试:Laravel 如何与多个结果建立雄辩的关系,laravel,laravel-5,eloquent,eloquent-relationship,Laravel,Laravel 5,Eloquent,Eloquent Relationship,问题 我有两个类,用户和帖子。一个用户“有许多”帖子,一个帖子“属于”一个用户。但是当我调用“User::all()”时,它不会自动拉用户的帖子,原因很明显,因为如果我的用户与100个不同的表有关系,那么拉所有的用户就会变得非常庞大 问题 有没有一种方法可以在一行或几行代码中拉取所有用户和所有用户->帖子,而不必经过foreach循环 我知道我可以使用mutator,但问题是我的字段名为user_id,我已经用以下代码对其进行了测试: public function getUserIdAttri
public function getUserIdAttribute($id)
{
return User::find($id);
}
但它将用用户对象替换“user_id”字段值,而不是将其设置为结果中自己的“临时用户”字段。我正在努力寻找最佳实践
提前谢谢你。你要找的东西叫 在您的帖子模型中:
class Post extends Model
{
protected $table='posts';
public $primaryKey='id';
public function user(){
return $this->belongsTo('App\User','user_id');
}
}
现在,您希望通过用户使用以下代码获取帖子:
$posts=Post::with('user')->get();
在您的用户模型中:
class User extends Model
{
public function posts(){
return $this->hasMany('App\Model\Post');
}
}
现在,您希望获得一个拥有所有帖子的用户:
$user=User::where('id',$id)->first();
$user_posts=$user->posts;
,如果你能快速阅读,你会对你能做什么以及如何做有更好的感觉。