保存模特的关系?

时间:2016-09-27 18:15:46

标签: laravel laravel-5 laravel-5.3

我使用的是Laravel 5.3。

如果我这样做:

$posts = Post::where('id', 1)
    ->with('stats')
    ->first();

是否可以保存stats关系,例如:

$posts->stats->num_users = 5;
$posts->stats->save();

这是完成此任务的正确方法吗?

2 个答案:

答案 0 :(得分:0)

你可以做那样的事情

$posts = Post::where('id', 1)
        ->with('stats')
        ->first();

$stats = $post->stats;

如果您想更新值,那么

$stats->update(['num_users'=> 5]);

应该这样做。

答案 1 :(得分:0)

是的,这是可能的。

然而,它可能只是在你的帖子对象上尚未创建'统计'关系。

如果是这种情况,你可以这样做:

//retrieve the post
$post = Post::with('stats')->find(1);

//use existing stats object or new up one
$stats = $post->stats ?: new PostStats(['post_id' => $post->id]);
$stats->num_users = 5;

//persist
$stats->save();