Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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
Validation Phalcon框架:Can';t在数据库中保存不需要的字符串_Validation_Save_Required_String_Phalcon - Fatal编程技术网

Validation Phalcon框架:Can';t在数据库中保存不需要的字符串

Validation Phalcon框架:Can';t在数据库中保存不需要的字符串,validation,save,required,string,phalcon,Validation,Save,Required,String,Phalcon,我正在使用Phalcon PHP框架,我想将我的表单保存到数据库中,一切都正常,但我无法在某些(非必需)字段中保存空字符串 如何保存非必填字段?每次在没有输入的情况下保存非必填字段时,都会出现类似“lastname字段是必填的”这样的错误 有人吗 对不起,我的英语不好,我正在学习 我的控制器代码是: $this->view->disable(); $usuario = new Usuarios(); $usuario->usuario = $this->req

我正在使用Phalcon PHP框架,我想将我的表单保存到数据库中,一切都正常,但我无法在某些(非必需)字段中保存空字符串

如何保存非必填字段?每次在没有输入的情况下保存非必填字段时,都会出现类似“lastname字段是必填的”这样的错误

有人吗

对不起,我的英语不好,我正在学习


我的控制器代码是:

$this->view->disable();
$usuario = new Usuarios();

    $usuario->usuario = $this->request->getPost("usuario");
    $usuario->email = $this->request->getPost("email");
    $usuario->senha = $this->request->getPost("senha");
    $usuario->nome = $this->request->getPost("nome");
    $usuario->sobrenome = $this->request->getPost("sobrenome");
    $usuario->icone = $this->request->getPost("icone");
    $usuario->fixo = $this->request->getPost("fixo");
    $usuario->celular = $this->request->getPost("celular");
    $usuario->tipo = $this->request->getPost("tipo");

    $usuario->save();

我的模型中有基本的验证…

它可能会失败,因为您试图保存NULL而不是空字符串。很遗憾,由于声誉的要求,我无法回复评论,但是你能发布你的Usuarios模型的内容吗?我需要看看你们的验证是什么样子的。

你们可以从上面建议的解决方案中选择一个

最后一个简单的解决方案:

$usuario->usuario = $this->request->getPost("usuario") || "";

迟来的回答,但可能对某人有用。如果希望phalcon忽略特定字段,则需要使用
skipAttributes()

示例:

class Usuarios extends \Phalcon\Mvc\Model
{
    public function initialize()
    {
    $this->skipAttributes(array('field1', 'field2'));
    }
}

以下是文档链接:

如果您想为某些字段保存空字符串(此类错误的原因之一,如“lastname字段是必需的”),可以使用Phalcon Model allowEmptyStringValues方法:

class Robots extends Model
{
    public function initialize()
    {
        $this->allowEmptyStringValues(['usuario', 'someelse', 'someother']);
    }
}
用于允许为手动列出的字段保存空字符串


还要检查您的Usarios模型(它有一个名为“lastname”的字段)和您的数据库结构空/非空字段属性。

我找到了一个解决方案,禁用了Phalcon默认空字段验证,并将所有必需字段直接插入模型验证功能中。我没有测试您的解决方案,但这很好,我会记住使用| |“”;下一次!谢谢谢谢你的贡献!我已经解决了这个问题,但它可能会帮助其他人解决这个问题。