我与affiliates
表有一对多的关系。
用户模型:
public function affiliates() {
return $this->hasMany('App\Affiliate');
}
会员模型:
public function user() {
return $this->belongsTo('App\User');
}
affiliates
是从表单中的选择框中选择的其他users
。
关联公司的架构如下
Schema::create('affiliates', function(Blueprint $table)
{
$table->increments('id');
$table->integer('user_id');
$table->integer('affiliate_id');
});
我想更新从表单中选择的多个关联企业。请举个例子来更新现有记录或创建新记录。
答案 0 :(得分:-1)
你可以这样做:
$user = User::find(1);
$input = [2, 3];
$affiliates = User::whereIn('id', $input)->get();
// Delete old affiliates
Affiliate::whereUserId($user->id)->delete();
// Add new affiliates
foreach($affiliates as $affiliate)
$user->affiliates()->save(new Affiliate(['user_id' => $user->id, 'affiliate_id' => $affiliate->id]));
其中
$user
是获得新会员的用户。$input
表单输入,其中包含将成为$user
附属机构的用户的ID。确保user_id
模型中的affiliate_id
和Affiliate
列可填写(不受保护),否则您将获得MassAssignmentException
例外。