更新数据透视表Laravel 5.4

时间:2017-08-01 01:56:54

标签: laravel laravel-5.4

我正在尝试保存我的Pivot但没有发生任何事情,它没有提示任何错误我不知道在哪里调试因为没有提示,任何想法?附在这里是我的代码。

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

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 个答案:

答案 0 :(得分:1)

我所做的是在使用updateExistingPivot

之前调整预览ID

这是我的控制器

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

    $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');
}