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)
但我不认为这是正确的方式.
有人能指出我正确的方向吗?
你用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)