Laravel 5 更新所有 Pivot 条目
Laravel 5 update all Pivot entries
我在用户和自定义视图模型之间存在多对多关系:
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' );
}
}
现在,我想更新所有用户的自定义视图分配并将它们的默认标志重置为 0。
在 SQL 中(枢轴 table 的名称是 customview_user),这应该看起来像这样:
UPDATE `customview_user` SET `default`=0 WHERE `user_id`=<user_id>;
有没有办法这样做:
$user->customviews()->...update(['default' => 0]);
像这样 updateExistingPivot
试试:
$user->customviews()->updateExistingPivot($customviewId, ['default' => 0]);
你可能已经离开了这里,但为了后代,我还是会回复,因为我是通过 Google 找到这个问题的。
它很老套,但它确实有效:
$user->customviews()
->newPivotStatement()
->where('user_id', '=', $user->id)
->update(array('default' => 0));
我在用户和自定义视图模型之间存在多对多关系:
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' );
}
}
现在,我想更新所有用户的自定义视图分配并将它们的默认标志重置为 0。
在 SQL 中(枢轴 table 的名称是 customview_user),这应该看起来像这样:
UPDATE `customview_user` SET `default`=0 WHERE `user_id`=<user_id>;
有没有办法这样做:
$user->customviews()->...update(['default' => 0]);
像这样 updateExistingPivot
试试:
$user->customviews()->updateExistingPivot($customviewId, ['default' => 0]);
你可能已经离开了这里,但为了后代,我还是会回复,因为我是通过 Google 找到这个问题的。
它很老套,但它确实有效:
$user->customviews()
->newPivotStatement()
->where('user_id', '=', $user->id)
->update(array('default' => 0));