Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Phalcon PHP:确定是否在模型验证方法中创建或更新_Php_Validation_Model_Phalcon - Fatal编程技术网

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

Phalcon PHP:确定是否在模型验证方法中创建或更新,php,validation,model,phalcon,Php,Validation,Model,Phalcon,我在Phalcon创建了一个模型。其中有一个validation()方法。在创建记录时,我希望确保记录获得名称,但我不希望在更新时需要这样做。我如何用Phalcon确定这一点?在Phalcon的文章中描述得更好 在Phalcon的书中描述得更好 您可以在名为beforeValidationOnCreate或beforeCreate的函数中执行验证,它只在创建时被命中,而不在更新时被命中 public function beforeValidationOnCreate() { //Do t

我在Phalcon创建了一个模型。其中有一个validation()方法。在创建记录时,我希望确保记录获得名称,但我不希望在更新时需要这样做。我如何用Phalcon确定这一点?

在Phalcon的文章中描述得更好


在Phalcon的书中描述得更好


您可以在名为beforeValidationOnCreate或beforeCreate的函数中执行验证,它只在创建时被命中,而不在更新时被命中

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

请查看下面的链接,以了解您可以使用的更多事件:


希望这接近您所需要的功能

您可以在名为beforeValidationOnCreate或beforeCreate的函数中执行验证,它只在创建时受到影响,而不在更新时受到影响

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

请查看下面的链接,以了解您可以使用的更多事件:


希望这接近您需要的

如果您有更复杂的内容,并且希望对创建和更新使用相同的“验证”方法,您可以这样做:

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

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

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

如果您有更复杂的内容,并且希望对创建和更新使用相同的“验证”方法,则可以执行以下操作:

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

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

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

你的验证码是什么?此外,模型是否会覆盖更新时的所有值,即,如果未指定名称,您是否正在处理在
name
列中以
null
结尾的场景?您的验证程序代码是什么?此外,模型是否会覆盖更新时的所有值,也就是说,如果未指定名称,您是否正在处理在
name
列中以
null
结尾的场景?嘿-我感谢您的回答!我认为这个特性的目的是允许数据库设置默认值(比如当前的时间戳等),以避免Phalcon要求数据库字段定义为非空的问题。不过,谢谢你给我指出这一点。我高估了你:)嘿-我很感激你的回答!我认为这个特性的目的是允许数据库设置默认值(比如当前的时间戳等),以避免Phalcon要求数据库字段定义为非空的问题。不过,谢谢你给我指出这一点。我投票给你:)