ronan-gloo / laravel-eloquent-observer
该包最新版本(dev-master)没有提供许可证信息。
将 Eloquent 模型的事件分发到模型的实例,或特定类
dev-master
2014-09-06 10:16 UTC
This package is auto-updated.
Last update: 2024-09-15 22:13:20 UTC
README
将 Eloquent 模型的事件分发到模型的实例,或特定类
安装
php artisan bundle:install observer
事件
- saving: 保存前
- saved: 保存后
- updated: 更新后
- created: 创建后
- deleting: 删除前
- deleted: 删除后
用法
1. 在模型内部
class Post extends Eloquent {
/**
* This method will be run after an update or a creation.
*/
public function event_saved()
{
Log::info(get_class($this).' with title "'.$this->title.'" saved');
}
}
2. 使用观察者
// The Model
class Post extends Eloquent {
public static $observe = array(
// Single observer for a single event
'saving' => 'Observe_Slug',
// Multiple observers for a single event
'created' => array('Observe_Log', 'Observe_Mail'),
// Observer with parameters
'updated' => array('Observe_History' => array('log' => true))
);
}
// Observer
class Observer_Slug extends Observer\Observe {
// Modelfy object before to save it
public function saving($model)
{
model->slug = Str::slug($model->title);
}
// event with parameters: parameters from model are instance properties here
public function updated($model)
{
if ($this->log == true)
{
Do something...
}
}
}