Laravel 4 как слушать модельное событие?

Я хочу, чтобы прослушиватель событий связывался с модельным событием.updating

Например, после обновления сообщенияs оповещение, уведомляющее обновленный заголовок сообщения, как написать слушатель события, чтобы иметь уведомление (со значением заголовка сообщения, передаваемого слушателю?

 JackpotK26 мая 2013 г., 12:36
да что яя не уверен, какое имя следует использовать? В произвольном событии мы можем использоватьEvent:fire('event_name',array('value')),а потомEvent:listen('event_name',function($param1){..}) Так я должен использовать?Event:fire('project::updating',array($project->title))
 Sabrina Leggett21 апр. 2014 г., 21:10
Я попробовал Event: listen ('название события', функция ($ param1) с событиями модели, и они некажется, работает. Жаль, что это было немного яснее в документации! Я бы предположил, что это также сработало бы.
 Phill Sparks26 мая 2013 г., 12:13
Я полагаю, выпрочитали документацию оСобытия?

Ответы на вопрос(4)

потому что я предполагал подписаться на события модели по умолчанию, такие как Event: listen ('user.created»Функция ($ user) сработала бы (как я сказал в комментарии). Пока ямы видели, как эти параметры работают в примере события, созданного пользователем по умолчанию для модели:

//This will work in general, but not in the start.php file
User::created(function($user).... 
//this will work in the start.php file
Event::listen('eloquent.created: User', function($user).... 
 ultimate02 мая 2014 г., 00:38
Именно то, что я искал! Я использую подписчиков событий, чтобы держать свои классы тонкими
Решение Вопроса

Модельные события, Oни'у всех есть вспомогательная функция на модели, так что вы нене нужно знать, как ониперестроен.

Красноречивые модели запускают несколько событий, позволяя вам подключиться к различным точкам модели.Жизненный цикл с использованием следующих методов: создание, создание, обновление, обновление, сохранение, сохранение, удаление, удаление. Если при создании, обновлении, сохранении или удалении событий возвращается false, действие будет отменено.

Project::creating(function($project) { }); // *
Project::created(function($project) { });
Project::updating(function($project) { }); // *
Project::updated(function($project) { });
Project::saving(function($project) { });  // *
Project::saved(function($project) { });
Project::deleting(function($project) { }); // *
Project::deleted(function($project) { });

Если вы вернетесьfalse из функций, отмеченных* тогда они отменит операцию.

Для более подробной информации, вы можете просмотретьОсветить / База данных / Красноречивым / Модель и вы найдете все события там, искать использованиеstatic::registerModelEvent а также .$this->fireModelEvent

События на моделях Eloquent структурированы какeloquent.{$event}: {$class} и передать экземпляр модели в качестве параметра.

 JackpotK27 мая 2013 г., 15:08
Спасибо! У меня будетPost::updating(function($post) {....$post->title.... });  выполнить уведомление.

http://driesvints.com/blog/using-laravel-4-model-events/

Показывает, как настроить прослушиватели событий, используя "загрузки ()» статическая функция внутри модели:

class Post extends eloquent {
    public static function boot()
    {
        parent::boot();

        static::creating(function($post)
        {
            $post->created_by = Auth::user()->id;
            $post->updated_by = Auth::user()->id;
        });

        static::updating(function($post)
        {
            $post->updated_by = Auth::user()->id;
        });
    }
}

Список событий, которыми @ phill-sparks поделился в своем ответе, можно применить к отдельным модулям.

 Vasil Popov27 дек. 2014 г., 15:32
Очень удобный способ немного автоматизировать модель. Благодарю.
 PiTheNumber27 нояб. 2015 г., 16:58
Все еще работает в Laravel 5. Спасибо
 Ingwie Phoenix15 нояб. 2015 г., 22:03
Ницца! Гораздо удобнее, чем выбрасывать десятки тысяч провайдеров услуг только для того, чтобы зарегистрировать эти ...
Event::listen('eloquent.created: ModelName', function(ModelName $model)   {
    //...
})

Ваш ответ на вопрос