当我使用此语法删除一行时:
$user->delete();
有没有办法附加各种回调,例如它会自动执行此操作:
$this->photo()->delete();
最好在模型类内部。
我相信这是 Eloquent 事件(http://laravel.com/docs/eloquent#model- events)的完美用例。您可以使用“删除”事件进行清理:
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... }); } }
您可能还应该将整个事物放入事务中,以确保引用完整性..