我在Phalcon中创建了一个模型。其中,我有一个validation()方法。在创建记录时,我想确保记录有一个名称,但我不希望更新时需要这样做。我如何用Phalcon来确定这一点?
Phalcon的文档中对其进行了更好的描述。
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'));
}
}
如果你有更复杂的东西,并且想对创建和更新使用相同的"验证"方法,你可以这样做:
public function beforeValidationOnCreate()
{
$this->_isCreate = 1;
}
public function beforeValidationOnUpdate()
{
$this->_isCreate = 0;
}
public function validation()
{
if ($this->_isCreate) {
// ...
} else {
// ...
}
}
您可以在名为beforeValidationOnCreate或beforeCreate的函数中进行验证,它只在创建时被命中,而不会更新
public function beforeValidationOnCreate()
{
//Do the validations
}
或
class MyModel extends 'Phalcon'Mvc'Model
{
public function beforeCreate()
{
//Do the validations
}
}
查看下面的链接,了解更多可以使用的事件:
Phalcon PHP事件和事件管理器
希望这接近您所需要的