使用附加的自定义数据透视表的Laravel方法使用attach不能与null一起使用

时间:2014-07-01 01:44:48

标签: laravel eloquent

我需要能够将用户添加到尚未拥有ID的数据透视表中。稍后当该用户成为会员时,我可以使用他们的ID更新他们的记录。

以下是我的模特:

class Group extends Eloquent {

public function members()
{
    return $this->belongsToMany('User', 'member')
            ->withPivot('first','last','favorite_food')
            ->withTimestamps();
    }
}

class User extends Eloquent {

    public function groups()
    {
        return $this->belongsToMany('Group')->withTimestamps();
    }
}

这有效:

 $group->members()->attach(Auth::user()->id, array('first' => $new_array[$key][0], 'last' =>     
 $new_array[$key][1], 'favorite_food' => $new_array[$key][2]));

这不起作用,但我真的希望如此:

 $group->members()->attach(null, array('first' => $new_array[$key][0], 'last' => $new_array[$key]  
 [1], 'favorite_food' => $new_array[$key][2]));

1 个答案:

答案 0 :(得分:1)

我认为你可能会以错误的方式解决这个问题,在我看来,更好的解决办法是让你的"临时"用户在您的数据库中的实际用户,但只需添加"临时"如果要标记它们,您可以始终根据其updated_at时间戳清除临时用户。

这将同时解决您的null问题。