gpt4 book ai didi

mysql - 保存不带 Null 的模型值

转载 作者:行者123 更新时间:2023-11-29 22:18:34 25 4
gpt4 key购买 nike

每次我尝试更新一行时,我都会收到一条错误,提示“需要某些内容”。在 codeigniter 中,您可以更新行,而无需在 mysql 表设置中将所有内容设置为 null。

我只想更新一个值而不是整行。

这可能吗?

if ($users->save() == false) {
echo "Umh, We can't update the user right now: \n";
foreach ($users->getMessages() as $message) {
echo $message, "<br>";
}
$this->flash->error("Error in updating information.");
$this->response->redirect('user/profile');
} else {
echo "Great, a new robot was saved successfully!";
$this->flash->success("Member has been updaed successfully.");
//$this->response->redirect('user/profile');
}

最佳答案

您的问题发生是因为您已经填写了表格但尚未正确定义模型。 Phalcon 在尝试保存模型数据之前正在验证所有模型数据。如果您正确地使用所有默认值、跳过等定义模型,则将根据您的意愿在单列上触发更新。

如果您有不允许空值的定义,但无论如何您都需要一个空值或默认值,您可能需要在模型实现中使用“beforeCreate”操作。此外,如果在第一次插入时需要设置默认值,您可能需要使用 skipAttributes 方法。

更多信息参见文档:Working with Models 。到目前为止我在互联网上发现的最好的一点。

此外,下面是我的工作代码中可空电子邮件列和 NOT NULL DEFAULT '0'“跳过”列的示例:

public function initialize() {
$this->skipAttributesOnCreate(['skipped']);
}

public function validation()
{
if($this->email !== null) {
$this->validate(
new Email(
array(
'field' => 'email',
'required' => true,
)
)
);
if ($this->validationHasFailed() == true) {
return false;
}
}
}

您确实希望出现“需要某些内容”的错误。您所缺少的只是模型默认值的正确实现。一旦你习惯了这些机制,你就会发现它们很容易操作,而且优点多于缺点。

关于mysql - 保存不带 Null 的模型值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30966303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com