Я создал модель в Phalcon. В нем у меня есть метод validation (). При создании записи я хочу убедиться, что запись получает имя, но я не хочу, чтобы это требовалось при обновлении. Как я могу определить это с Phalcon?
Вы можете выполнить валидацию внутри функции с именем beforeValidationOnCreate или beforeCreate, и она попадет только при создании, а не при обновлении.
public function beforeValidationOnCreate()
{
//Do the validations
}
или же
class MyModel extends \Phalcon\Mvc\Model
{
public function beforeCreate()
{
//Do the validations
}
}
Проверьте ссылку ниже для других событий, которые вы могли бы использовать:
Phalcon PHP Менеджер событий и событий
Надеюсь, что это близко к тому, что вам нужно
Если у вас есть что-то более сложное и вы хотите использовать один и тот же метод проверки для создания и обновления, вы можете сделать это:
public function beforeValidationOnCreate()
{
$this->_isCreate = 1;
}
public function beforeValidationOnUpdate()
{
$this->_isCreate = 0;
}
public function validation()
{
if ($this->_isCreate) {
// ...
} else {
// ...
}
}
Это лучше описано в Phalcon’s документы.
class Robots extends \Phalcon\Mvc\Model
{
public function initialize()
{
//Skips fields/columns on both INSERT/UPDATE operations
$this->skipAttributes(array('year', 'price'));
//Skips only when inserting
$this->skipAttributesOnCreate(array('created_at'));
//Skips only when updating
$this->skipAttributesOnUpdate(array('modified_in'));
}
}