Заполнить раскрывающийся список в ATK4 - PullRequest
2 голосов
/ 03 октября 2011
function init(){
    parent::init();
    $f = $this->add('Form');
    $f->addField('dropdown', 'Label:')->setModel('User');
}

Таким образом, этот код выведет выпадающий список, заполненный значениями в таблице, связанной с моделью Пользователь , но значения будут соответствовать полю name в модели.

Есть ли способ использовать другое поле модели для заполнения этого?

Ответы [ 2 ]

2 голосов
/ 03 октября 2011

Прямого пути нет. Во-первых, вы уверены, что вам не нужно использовать тип ссылки вместо выпадающего?

Во-вторых, как бесплатно:

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.

0 голосов
/ 10 марта 2015

Это изменилось, и мне потребовалось некоторое время, чтобы понять, как теперь это сделать.

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