我的问题与How to Set a Value to NULL when using Zend_Db
完全相同 但是,该问题中给出的解决方案对我不起作用。我的代码如下所示。在前端单击更新时,我在Model类上调用updateOper
。在updateOper
内,我调用另一个函数trimData()
,我首先修剪所有空格,然后我还检查一些字段是否进入empty
或''
我想要将它们设置为默认值或NULL值。因此,我使用new Zend_db_expr('null')
和new Zend_db_expr('default')
。
代码如下:
private function trimData(&$data ) {
//Trim whitespace characters from incoming data.
foreach($data as $key => $val)
{
$data[$key] = trim($val);
if($data['notes'] == '') {
error_log("set notes to null/default value");
$data['notes'] = new Zend_db_expr('DEFAULT');
}
}
}
public function updateOper($data, $id)
{
$result = 0;
$tData = $this->trimData($data);
error_log("going to add data as ".print_r($data, true));
$where = $this->getAdapter()->quoteInto('id = ?', $id);
$result = $this->update($data, $where);
return $result;
}
error_log
语句打印$data array
,如下所示:
[id] => 10
[name] => alpha
[notes] => DEFAULT
因此,notes
列的值为'= DEFAULT',而不是选择表定义中给出的默认值。
我一直试图找出问题所在,但一直无法找到解决方案。 我非常感谢你的帮助。
非常感谢!