xxxxxxxxxx
//in following example when we delete a user,
//his address will also be deleted automatically from address table.
//addresses relation in App\Models\User
public function addresses(){
return $this->hasMany(UserAddress::class, 'user_id');
}
//function to delete address on user deletion.
//this function should be in Users model in our case.
public static function boot() {
parent::boot();
self::deleting(function($user) { // delete() method call this automatically
$user->addresses()->each(function($address) {
$address->delete(); // <-- direct deletion
});
});
}
//Remember we don't need to call this function any where
just on calling delete() function this will be automatically called.
e.g: User::find($id)->delete()
xxxxxxxxxx
class User extends Eloquent
{
public function photos()
{
return $this->has_many('Photo');
}
// this is a recommended way to declare event handlers
public static function boot() {
parent::boot();
static::deleting(function($user) { // before delete() method call this
$user->photos()->delete();
// do the rest of the cleanup...
});
}
}