关联如何工作?

时间:2016-11-28 17:23:38

标签: laravel laravel-5 laravel-5.3

我试图让同事去工作。

用户模型的关系:

$user = new User();
//save user fields
....
$user->save();

$group = Group::find(1);
$user->group()->associate($group);

所以我这样做:

public class ViewModel
{
    public HttpPostedFileBase File {get;set;}
    public string FileName {get;set;}
}

插入了一个新用户,但是在用户表的group_id的FK中,我得到了空。

3 个答案:

答案 0 :(得分:1)

需要在保存前关联。

$user = new User();
//save user fields
....
$group = Group::find(1);
$user->group()->associate($group);
$user->save();

答案 1 :(得分:0)

好吧,假设您想将评论与博文相关联,因为评论只能针对我们将使用关联的特定帖子。 在我们的Post模型中,我们将拥有:

public function comments(){
    return $this->hasMany('App\Comment');
}

在我们的评论模型中,我们有:

         public function post(){
       return $this->belongsTo('App\Post');
    }

在我们的CommentsController中,我们将拥有:

  $comment = new Comment;
  $post=Post::find($post_id);
  $comment->post()->associate($post);
  $comment->save();

请注意,只有在将其与帖子关联后才能保存。

答案 2 :(得分:0)

您需要在关联

后保存用户
$user->save();

完整代码

$user = User::create([
   'field1' => $request->field1,
....
]);

$group = Group::find(1);
$user->group()->associate($group);
$user->save();