2012-03-22 8 views
0

Zend_Form_Element_SelectにZend_Db_Table_Rowからの直接のオプションをどのように設定しますか?例えばZend_Db_Table_RowオブジェクトをZend_Form_Element_Selectオプション(オプティカルウェイ)にマップする方法

$select = new Zend_Form_Element_Select('user_id', array(
     'required' => true 
     )); 

    // fetching users for select 
    $userTable = new User_Model_DbTable_User(); 
    $users = $userTable->fetchAll(); 
    $select->addMultiOptions($users->toArray()); 

しかし、これは良いに動作しません。たとえば、オブジェクトIDをオプション値として、オブジェクトプロパティの一部を選択ラベルとして使用したいとしましょう。

私はforeach thourghを行セットで実行し、オプションの配列を構築できますが、マップ関数のいくつかの種類がありますか?あなたにも単に例えば

foreach ($users as $user) { 
    $select->addMultiOption($user->id, $user->someObjectProperty); 
} 

答えて

2

どれマップ機能は、行セットを反復されるだろう、あなたはまた、あなたが使用したい正確に配列を返すために、モデルのメソッドを調整検討することができます。 おそらく次のようなものです:

public function fetchSelectList() { 
     $resultSet = $this->fetchAll(); 
     $entries = array(); 
     foreach ($resultSet as $row) { 
      $entry['id'] = $row->id; 
      $entry['name'] = $row->name; 

      $entries[] = $entry; 
     } 
     return $entries; 
    } 
2

、ということを行う可能性がありますので、あなたが作成

関連する問題