2017-08-01 13 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

私はここでupdateExistingPivot

をyusing前にプレビューIDをisnerting入れていたんでしたが、私のコントローラは

公共機能更新(リクエスト$要求、ユーザー$ユーザー) {

$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'); 
} 
です
関連する問題