首页 > 解决方案 > Laravel 多对多更新特定字段

问题描述

我有很多对多的关系。在邮递员中,我通过 find_id 和状态。

我的查询类似于:UPDATE finds_user SET status = TRUE WHERE find_id = 2 AND user_id = 1。

我现在这样做:

DB::table('finds_user')
    ->where('find_id', '=', $request->find_id)
    ->where('user_id', '=', $user->id)
    ->update(['status' => $request->status]);

我如何使用 Eloquent 而不是 DB Query Builder 来做到这一点?

十分感谢!

标签: phpmysqllaraveleloquent

解决方案


我们有两个更新条件:

1- find_id = 2

2- 用户 ID = 1。

假设用户模型中名为“finds”的关系名称查询将如下所示:

User::find(1)->finds()->newPivotQuery()->where('find_id',2)->update(['status'=>true])

如果您有一个名为“FindUser”的数据透视表模型:

FindUser::where('user_id',$user->id)->where('find_id',2)->update(['status'=>true]);

推荐阅读