如何在Laravel Eloquent中插入具有许多belongsTo关系的记录

The*_*nny 8 php orm laravel eloquent

我试图以雄辩的方式插入记录.

在基本情况下很清楚.例如,如果我有一个带帖子的博客,每个帖子属于一个用户,我可以这样做:

$post = new Post;
$post->content = 'Post content';
$user->posts()->save($post);
Run Code Online (Sandbox Code Playgroud)

但是,如果我的帖子同时属于用户,类别和群组,我应该怎么做呢?

我的第一个想法就是这样做:

$post = new Post;
$post->content = 'Post content';
$user->posts()->save($post);
$group->posts()->associate($post);
$cat->posts()->associate($post);
Run Code Online (Sandbox Code Playgroud)

但是它不起作用,因为当我将它保存到数据库并且不允许时,组ID和类别id为空.

我现在在做的是:

$post = new Post;
$post->content = 'Post content';
$post->group = $group->id;
$post->category = $cat->id;
$user->posts()->save($post);
Run Code Online (Sandbox Code Playgroud)

但我不认为这是正确的方式.

有人能指出我正确的方向吗?

luk*_*ter 8

你用associate错了方法。您必须在belongsTo关系方面而不是hasMany.

尝试这个:

$post = new Post;
$post->content = 'Post content';
$post->category()->associate($cat);
$post->group()->associate($group);
$user->posts()->save($post);
Run Code Online (Sandbox Code Playgroud)