マルチオプションで要素を使用するZend_Form_Element_Select
と、選択した値を渡してZend_DB_Table
データベースに挿入すると、このエラーが発生します
Message: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'accounts_status ' in 'field list'
問題を説明するのに大いに役立つと思われるいくつかのコード スニペットを抽出しました。accounts_statusフィールドはテーブルに存在します。
フォーム構成にselect要素とオプションを追加しました(他の要素は省略しました)
$optionsstatus = array(
'active' => 'active',
'pending' => 'pending'
);
$optionsrole = array(
'guest' => 'guest',
'user' => 'user',
'writer' => 'writer',
'admin' => 'admin'
);
$status = new Zend_Form_Element_Select('accounts_status');
$status->setLabel('Status')
->setRequired(true)
->addMultiOptions($optionsstatus);
$role = new Zend_Form_Element_Select('accounts_role');
$role->setLabel('Role')
->setRequired(true)
->addMultiOptions($optionsrole);
Zend_DB_tableを使用して、コントローラーからポスト値を挿入します
public function addaccount($username, $fullname, $email,
$password,$status,$roles,$comments)
{
$data = array(
'accounts_username' => $username,
'accounts_fullname' => $fullname,
'accounts_email' => $email,
'accounts_password' => $password,
'accounts_status ' => $status,
'accounts_roles' => $roles,
'accounts_comments ' => $comments,
);
$this->insert($data);
}
私のコントローラーでは、投稿値を取得してモデルに送信します
$username = $form->getValue('accounts_username');
$fullname = $form->getValue('accounts_fullname');
$email = $form->getValue('accounts_email');
$password = $form->getValue('accounts_password');
$status = $form->getValue('accounts_status');
$roles = $form->getValue('accounts_roles');
$comments = $form->getValue('accounts_comments');
$accounts = new Model_DbTable_Account();
$accounts->addaccount($username, $fullname,$email,
$password,$status,$roles,$comments);
このアプローチは、要素を扱っている場合を除いて私にとってはZend_Form_Element_Select
うまくいきます.CRUD操作に関しては、この選択要素を扱う特定の方法があるかどうか疑問に思っています.