1
我正在構建一個具有用戶和用戶角色的應用程序。用戶可以有許多角色。Laravel模型關係在刪除模型時產生錯誤的sql
我有3個表設置:
- 用戶
- 作用
- ROLE_USER
在我user
模式,我有這樣的:
...
/**
* Boot the model.
*
*/
public static function boot()
{
parent::boot();
static::deleting(function($user)
{
$user->roles()->delete();
});
}
/**
* The roles that belong to the user.
*
* @return Object
*/
public function roles()
{
return $this->belongsToMany('SimplyTimesheets\Models\User\Role')->withTimestamps();
}
...
當我刪除用戶,我想要它o也從role_user
表中刪除關聯的行。
我的刪除方法是這樣的:
/**
* Delete user.
*
* @param $id
* @return mixed
*/
public function deleteUser($id)
{
return $this->user->whereId($id)->delete();
}
然而,這將導致以下SQL生成:
delete `role` from `role` inner join `role_user` on `role`.`id` = `role_user`.`role_id` where `role`.`cust_id` = ? and `role_user`.`user_id` = ?
爲什麼試圖從role
表,而不是從刪除的行role_user
?
我錯過了什麼?
謝謝。
完美,謝謝。 – V4n1ll4