Dan*_*cht 4 php sql pivot laravel laravel-query-builder
我在用户和Customview模型之间存在多对多关系:
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
/**
* Customview relation
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function customviews ()
{
return $this->belongsToMany( Customview::class )->withPivot( 'default' );
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我想更新所有用户的customview-assignment并将其默认标志重置为0.
在SQL中,这应该是这样的(数据透视表的名称是customview_user):
UPDATE `customview_user` SET `default`=0 WHERE `user_id`=<user_id>;
Run Code Online (Sandbox Code Playgroud)
有没有办法这样做:
$user->customviews()->...update(['default' => 0]);
Run Code Online (Sandbox Code Playgroud)
小智 6
你可能已经离开了这个,但是对于后代,无论如何,当我通过Google发现这个问题时,我会回复.
这很糟糕,但这样做有:
$user->customviews()
->newPivotStatement()
->where('user_id', '=', $user->id)
->update(array('default' => 0));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1560 次 |
| 最近记录: |