Довольно часто приходится из БД получить записи и использовать их в форме для html элемента <select>
Вот возможное решение:
Код:
class ORM extends Kohana_ORM
{
public function find_for_select($key, $val, array $unshift = array())
{
$array = array();
if ($unshift AND isset($unshift[0]) AND isset($unshift[1])) {
$array[$unshift[0]] = $unshift[1];
}
foreach ($this->find_all() as $obj) {
$array[$obj->$key] = $obj->$val;
}
return $array;
}
}
Используем, например, так:
Код:
$select_arr = ORM::factory('Color')->find_for_select('id', 'name', array(0, 'All colors'));
echo Form::select('color', $select_arr);
$unshift - необязательный параметр, в котором можно указать первый элемент массива для <select> При выборке из БД его обычно нет.
UPD: Заменил ->find_all_for_select() на ->find_for_select() для более короткой записи.