Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.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
Php 如何更新,但字段是否为空_Php_Cakephp_Frameworks_Cakephp 2.0 - Fatal编程技术网

Php 如何更新,但字段是否为空

Php 如何更新,但字段是否为空,php,cakephp,frameworks,cakephp-2.0,Php,Cakephp,Frameworks,Cakephp 2.0,我需要运行保存/更新查询,但只更新那些不为空的字段。我的表单包含一个文件字段,如果我没有上传任何文件,那么当执行save()时,即使显示了以前的数据,该字段也将变为空白,因此我如何保存/更新,但仅保存包含要更新内容的字段 提前干杯和感谢您始终可以添加一个条件,检查用户是否上传文件。 如果不是,请在数据库中为该文件选择当前值,并使用旧值更新它 例如: $update['description'] = $_POST['description']; //just another field if($_

我需要运行保存/更新查询,但只更新那些不为空的字段。我的表单包含一个文件字段,如果我没有上传任何文件,那么当执行save()时,即使显示了以前的数据,该字段也将变为空白,因此我如何保存/更新,但仅保存包含要更新内容的字段


提前干杯和感谢

您始终可以添加一个条件,检查用户是否上传文件。 如果不是,请在数据库中为该文件选择当前值,并使用旧值更新它

例如:

$update['description'] = $_POST['description']; //just another field
if($_POST['file']['name'] == "") //check if there's a new file
  $update['filename'] = $this->book->file_name; //current file name
else
  $update['filename'] = $_POST['file']['name']; //new file name in case the user uploaded a new file

$this->book->update($update); //update no matter what

在您的模型中,您需要事先测试数据是否为空,在这种情况下,取消设置它

if ($this->data['file'] == "") {
    unset($this->data['file']);
}

谢谢,它工作得很好,但只有一件事不是在我的模型中,我需要检查这是在我的控制器:)取决于你的应用程序,但我会让这个任务到我的模型。不管怎样,只要它起作用……)