2
function init(){
    parent::init();
    $f = $this->add('Form');
    $f->addField('dropdown', 'Label:')->setModel('User');
}

したがって、このコードは、モデルUserに関連付けられたテーブルの値が入力されたドロップダウンリストを出力しますが、値はモデルの名前フィールドのものになります。

モデルの別のフィールドを使用してこれを設定する方法はありますか?

4

2 に答える 2

2

直接的な方法はありません。まず、ドロップダウンの代わりに「参照」タイプを使用する必要はありませんか?

第二に、無料はその方法です:

class Model_User_BySurname extends Model_User {
    public function getListFields(){
        return array('id'=>'id','surname'=>'name');
    }
}

その後さらに:

$form->addField('reference','Label')->setModel('User_BySurname');

もちろん、getListFieldsで使用されるある種の「setNameField('surname')」関数と非表示のプロパティを作成することにより、このフィールドをモデルで再定義可能にすることができます。

于 2011-10-03T08:03:55.943 に答える
0

これは変更されており、これを行う方法を理解するのに少し時間がかかりました。

class Model_MyModel extends SQL_Model {
  public function init() {
    parent::init();
    $this->addField('titleField');
  }

  public function getTitleField() {
    return 'titleField';
  }
}

$form->addField('dropdown', 'Label')->setModel('MyModel');
于 2015-03-10T11:59:23.513 に答える