Eloquent ORM - 使用2个参考字段保存记录

时间:2013-03-16 17:26:11

标签: php laravel laravel-4

如果我创建这样的评论:

$post->comments()->create(array('body' => 'Comment message'));

我的帖子上有模型:

public function comments()
{
    return $this->morphMany('Comment', 'shared_comments');
}

它填充了帖子和评论之间的多态关系字段。

我的评论也有模型:

public function author()
{
    return $this->belongsTo('User');
}

如何填写评论表中的'user_id'字段?

1 个答案:

答案 0 :(得分:1)

您只需在数组中明确指定用户ID即可。

$post->comments()->create(array(
    'body' => 'Comment message',
    'user_id' => Auth::user()->id
));

或者,您可以创建注释,然后在帖子和用户表中插入关系。

$post = Post::find($whatever);
$user = Auth::user()->id;

$comment = Comment::create(array(
    'body' => 'Comment message'
));

$post->comments()->insert($comment);
$user->comments()->insert($comment);

在Laravel 4中,最后两行使用save($comment)代替insert($comment)。这是Laravel 3的一个重大变化。