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

因此,此代码将输出一个由与模型User关联的表中的值填充的下拉列表,但这些值将是模型中的name字段。

有没有办法使用模型的另一个字段来填充它?

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');

当然,您可以通过创建某种“setNameField('surname')”函数和 getListFields 中使用的隐藏属性,在模型中重新定义该字段。

于 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 回答