私の質問は、 Zend_Dbを使用するときに値をNULLに設定する方法とまったく同じです。
しかし、その質問で与えられた解決策は私にはうまくいきません。私のコードは次のようになります。updateOper
フロントエンドで更新をクリックすると、Modelクラスが呼び出されます。内部では、最初にすべての空白を削除してから、一部のフィールドが入力されているかどうか、またはデフォルト値またはNULL値に設定するかどうかを確認するupdateOper
別の関数を呼び出します。したがって、私はとを使用しています。trimData()
empty
''
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」になります。
私は何が悪いのかを理解しようとしてきましたが、解決策を見つけることができませんでした。よろしくお願いします。
本当にありがとう!