Laravel 5.4将新对象推入数组

时间:2019-10-29 12:30:08

标签: arrays laravel-5

我正在尝试将对象推送到用户模型。

用户模型具有以下参数:

User.posts.

posts是数组。

首先,我尝试了以下方法:

$user->posts()->save($Post);

这没有将新的Post对象添加到user.posts中(但它没有返回错误)。

我也尝试过$user->posts()->push($Post);

$user->posts = array_add($Post) ...,但这需要三个参数。 抱歉,我是laravel的新手,如何将对象实例推送到用户模型的数组(帖子)?

谢谢

1 个答案:

答案 0 :(得分:0)

您需要先获取帖子的副本Collection,然后将新帖子push放到上面,然后将更新的收藏集分配回去并保存。

有更清洁的方法可以做到这一点,但是我向您展示了这种方式,以便您可以看到需要发生的事情的顺序:

$postsCollection = $user->posts();
$postsCollection->push($newPost);
$user->posts = $postsCollection;
$user->save();