Laravel 如何与多个结果建立雄辩的关系

Laravel 如何与多个结果建立雄辩的关系,laravel,laravel-5,eloquent,eloquent-relationship,Laravel,Laravel 5,Eloquent,Eloquent Relationship,问题 我有两个类,用户和帖子。一个用户“有许多”帖子,一个帖子“属于”一个用户。但是当我调用“User::all()”时,它不会自动拉用户的帖子,原因很明显,因为如果我的用户与100个不同的表有关系,那么拉所有的用户就会变得非常庞大 问题 有没有一种方法可以在一行或几行代码中拉取所有用户和所有用户->帖子,而不必经过foreach循环 我知道我可以使用mutator,但问题是我的字段名为user_id,我已经用以下代码对其进行了测试: public function getUserIdAttri

问题

我有两个类,用户和帖子。一个用户“有许多”帖子,一个帖子“属于”一个用户。但是当我调用“User::all()”时,它不会自动拉用户的帖子,原因很明显,因为如果我的用户与100个不同的表有关系,那么拉所有的用户就会变得非常庞大

问题

有没有一种方法可以在一行或几行代码中拉取所有用户和所有用户->帖子,而不必经过foreach循环

我知道我可以使用mutator,但问题是我的字段名为user_id,我已经用以下代码对其进行了测试:

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;
,如果你能快速阅读,你会对你能做什么以及如何做有更好的感觉。