Phalcon PHP:确定是在模型验证方法中创建还是更新


Phalcon PHP: determine if create or update in model validation method

我在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事件和事件管理器

希望这接近您所需要的