Phalcon PHP: определить, если создать или обновить в методе проверки модели

Я создал модель в Phalcon. В нем у меня есть метод validation (). При создании записи я хочу убедиться, что запись получает имя, но я не хочу, чтобы это требовалось при обновлении. Как я могу определить это с Phalcon?

0

Решение

Вы можете выполнить валидацию внутри функции с именем beforeValidationOnCreate или beforeCreate, и она попадет только при создании, а не при обновлении.

public function beforeValidationOnCreate()
{
//Do the validations
}

или же

class MyModel extends \Phalcon\Mvc\Model
{
public function beforeCreate()
{
//Do the validations
}
}

Проверьте ссылку ниже для других событий, которые вы могли бы использовать:

Phalcon PHP Менеджер событий и событий

Надеюсь, что это близко к тому, что вам нужно

1

Другие решения

Если у вас есть что-то более сложное и вы хотите использовать один и тот же метод проверки для создания и обновления, вы можете сделать это:

public function beforeValidationOnCreate()
{
$this->_isCreate = 1;
}

public function beforeValidationOnUpdate()
{
$this->_isCreate = 0;
}

public function validation()
{
if ($this->_isCreate) {
// ...
} else {
// ...
}
}
2

Это лучше описано в 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'));
}

}

1
По вопросам рекламы [email protected]