You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am going to delete a $user which has a relation to a record in the tickets table.
The tickets relation looks like:
`tickets`
user_id ON DELETE RESTRICT
This means that if I would delete the associated user (just regular $user->delete() through eloquent), the query should fail because of an "integrity constraint violation", which is what happens and is expected.
However, the role_user record of the user is deleted even though an exception is thrown because of the tickets relation. The role_user relation looks like this:
This adds a static::deleting() to the user model, which in this case tries to remove all associated roles for this user, although that in itself should be logic related to the database (like InnoDB).
I am assuming that this is a fix for MyISAM engines (since these dont support foreign keys if im correct ?). I personally am using InnoDB.
Solution 1: maybe change the event listeners from static::deleting to static::deleted so that on a transaction level it keeps functioning as well? I havent tested this change yet.
Consider the following case:
I am going to delete a $user which has a relation to a record in the
tickets
table.The tickets relation looks like:
This means that if I would delete the associated user (just regular
$user->delete()
through eloquent), the query should fail because of an "integrity constraint violation", which is what happens and is expected.However, the
role_user
record of the user is deleted even though an exception is thrown because of thetickets
relation. The role_user relation looks like this:The code in question seems to be this line:
https://github.com/Zizaco/entrust/blob/master/src/Entrust/Traits/EntrustUserTrait.php#L91
This adds a
static::deleting()
to the user model, which in this case tries to remove all associated roles for this user, although that in itself should be logic related to the database (like InnoDB).Note that a similar issue also occurs in:
https://github.com/Zizaco/entrust/blob/master/src/Entrust/Traits/EntrustRoleTrait.php#L94
https://github.com/Zizaco/entrust/blob/master/src/Entrust/Traits/EntrustPermissionTrait.php#L32
I am assuming that this is a fix for
MyISAM
engines (since these dont support foreign keys if im correct ?). I personally am usingInnoDB
.Solution 1: maybe change the event listeners from
static::deleting
tostatic::deleted
so that on a transaction level it keeps functioning as well? I havent tested this change yet.Solution 2: remove the event listeners if the engine is InnoDB, and ensure correct
ON DELETE
settings for the database tables (which seem to be correct https://github.com/Zizaco/entrust/blob/master/src/views/generators/migration.blade.php )The text was updated successfully, but these errors were encountered: