@Konstantin78

Как правильно сформировать параметр для «Form::select»?

Всем доброе время суток.
Работаю с kohana 3.3.2
Имеется таблица отделов (ид., наименование отдела, подчинен отделу), с полями "id", "name", "main_dep_id".
Поле «main_dep_id» ссылается на поле «name» другого «id» этой же таблицы (т.е. отдел входит в дугой отдел и т.д.).
В обработчике контроллера редактирования информации по отделу, я написал:
...
         $id = (int) $this->request->param('id');
         $one_department_a = ORM::factory('department', $id)->as_array();
         $this->departments_a = array();
         $this->departments_a1 = array();
        foreach($this->departments_o as $department)
        {
            $this->departments_a[$department->id] = $department->abbreviation;
            $this->departments_a1[$department->id]= $department->name;
        }
...


В view редактирования отделов, параметр (поле) «подчинен отделу» я сделал с помощью «select» (с выбором уже существующих отделов)
…
      <select size="1" name="main_dep_id">
           <?php foreach($departments as $department):?>
                 <?php if(($department->id) == $one_department_a['main_dep_id']):?>
                     <option selected value="<?=($department->id)?>"><?=$department->name?></option>
                 <?php else:?>
                     <option value="<?=($department->id)?>"><?=$department->name?></option>
                 <?php endif?>    
           <?php endforeach?>   
       </select>
…

Все работает (может код не совсем удачно написан).
Но тут (в view), я захотел воспользоваться методом kohana, у которой есть «Form::select»
(public static function select($name, array $options = NULL, $selected = NULL, array $attributes = NULL)),
но ни как не могу понять, как сформировать третий параметр, этого метода? Он как то формируется через модель?
Или лучше оставить все как есть?

Заранее спасибо
  • Вопрос задан
  • 2339 просмотров
Пригласить эксперта
Ответы на вопрос 1
Tesla
@Tesla
Наверное, не третий параметр а второй? Он должен выглядеть так:
$options = array(
	'value1' => 'name1',
	'value2' => 'name2',
);


Если нужны optgroup, то:
$options = array(
	'group1' => array(
		'value1' => 'name1',
		'value2' => 'name2',
	),
	'group2' => array(
		'value3' => 'name3',
	),
);


А в качестве третьего параметра принимается просто значение value.
$selected = 'value1';
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы