2017-08-01 158 views
2

我想救我的支点,但什么都没有发生,它不提示我不知道在哪里可以调试原因没有提示,任何想法,任何错误?附在这里是我的代码。更新数据透视表Laravel 5.4

控制器注意:电子邮件和姓名正确更新。

public function update(Request $request, User $User) 
    { 
     $user=auth()->user(); 

     $User->name    = $request->get('name'); 
     $User->email   = $request->get('email'); 
     $User->warehouse_id  = $request->get('warehouse_id'); 
     $User->role_id   = $request->get('role_id'); 

     $User->save(); 

     $User->roles()->updateExistingPivot($request->get('role_id'), ['role_id' => $request->get('role_id')]); 

     $User->warehouse()->updateExistingPivot($request->get('warehouse_id'), ['warehouse_id' => $request->get('warehouse_id')]); 

     return redirect()->route('user.index'); 
    } 

模型关系

仓库

class Warehouse extends Model 
{ 
    protected $fillable = ['warehouse','warehouse_description','created_by']; 

    public $primaryKey='id'; 

    public function users() 
    { 
     return $this->belongsToMany(User::class); 
    } 
} 

用户

public function roles() 
{ 
    return $this->belongsToMany(Role::class); 
} 

public function warehouse() 
{ 
    return $this->belongsToMany(Warehouse::class); 
} 

角色

class Role extends Model 
{ 
    protected $fillable = ['role']; 

    public $primaryKey='id'; 

    public function users() 
    { 
     return $this->belongsToMany(User::class); 
    } 
} 

回答

1

我所做的是把yusing updateExistingPivot

这里之前isnerting预览ID是我的控制器

公共功能更新(请求$请求,用户$ USER) {

$User->name    = $request->get('name'); 
    $User->email   = $request->get('email'); 
    $User->warehouse_id  = $request->get('warehouse_id'); 
    $User->role_id   = $request->get('role_id'); 

    $User->roles()->updateExistingPivot($User->role_id, ['role_id' => $request->get('role_id')]); 

    $User->warehouse()->updateExistingPivot($User->warehouse_id, ['warehouse_id' => $request->get('warehouse_id')]); 

    $User->save(); 

    return redirect()->route('user.index'); 
}