本文整理匯總了PHP中Cake\ORM\Table::getEventManager方法的典型用法代碼示例。如果您正苦於以下問題:PHP Table::getEventManager方法的具體用法?PHP Table::getEventManager怎麽用?PHP Table::getEventManager使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Cake\ORM\Table
的用法示例。
在下文中一共展示了Table::getEventManager方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: _processValidation
/**
* Validates the $entity if the 'validate' key is not set to false in $options
* If not empty it will construct a default validation object or get one with
* the name passed in the key
*
* @param \Cake\ORM\Entity The entity to validate
* @param \ArrayObject|array $options
* @return bool true if the entity is valid, false otherwise
*/
protected function _processValidation($entity, $options)
{
$type = is_string($options['validate']) ? $options['validate'] : 'default';
$validator = $this->_table->validator($type);
$pass = compact('entity', 'options', 'validator');
$event = new Event('Model.beforeValidate', $this->_table, $pass);
$this->_table->getEventManager()->dispatch($event);
if ($event->isStopped()) {
return (bool) $event->result;
}
if (!count($validator)) {
return true;
}
$success = $entity->validate($validator);
$event = new Event('Model.afterValidate', $this->_table, $pass);
$this->_table->getEventManager()->dispatch($event);
if ($event->isStopped()) {
$success = (bool) $event->result;
}
return $success;
}
示例2: __construct
/**
* Constructor
*
* @param \Cake\ORM\Table $table
*/
public function __construct(Table $table)
{
$this->_table = $table;
$this->_eventManager = $table->getEventManager();
}
示例3: testFindBeforeFindEventOverrideReturn
/**
* Test that beforeFind events are fired and can stop the find and
* return custom results.
*
* @return void
*/
public function testFindBeforeFindEventOverrideReturn()
{
$table = new Table(['table' => 'users', 'connection' => $this->connection]);
$expected = ['One', 'Two', 'Three'];
$table->getEventManager()->attach(function ($event, $query, $options) use($expected) {
$query->setResult($expected);
$event->stopPropagation();
}, 'Model.beforeFind');
$query = $table->find('all');
$query->limit(1);
$this->assertEquals($expected, $query->all());
}