Мне нужно сгенерировать функцию для вызова после или перед save() или update(), но я не знаю, как это сделать. Я думаю, мне нужен обратный вызов из save() update(), но я не знаю, как это сделать. Благодаря
Laravel: как создать функцию After или Before save | update
Ответ 1
Внутри вашей модели вы можете добавить метод boot(), который позволит вам управлять этими событиями.
Например, имея модель User.php:
class User extends Model
{
public static function boot()
{
parent::boot();
self::creating(function($model){
// ... code here
});
self::created(function($model){
// ... code here
});
self::updating(function($model){
// ... code here
});
self::updated(function($model){
// ... code here
});
self::deleting(function($model){
// ... code here
});
self::deleted(function($model){
// ... code here
});
}
}
Здесь вы можете просмотреть все доступные события: https://laravel.com/docs/5.2/eloquent#events
Ответ 2
Создайте поставщика, используя эту команду
php artisan make:provider ProviderClassName
затем определите обратные вызовы для моделей в функции загрузки
Model::created(function($model){
//Do you want to do
});
Список доступных обратных вызовов:
Model::creating(function($model){});
Model::updated(function($model){});
Model::updating(function($model){});
Model::deleted(function($model){});
Model::deleting(function($model){});
Model::saving(function($model){});
Model::saved(function($model){});
Ответ 3
Не знаю, было ли это доступно в то время, но сегодня вы можете использовать Observers: