Php Kohana框架:添加默认选项

Php Kohana框架:添加默认选项,php,orm,frameworks,rad,kohana-3,Php,Orm,Frameworks,Rad,Kohana 3,有没有一种更快的方法可以在select中添加默认选项? 谢谢。使用现有框架功能和一些智能数据,您的方式看起来非常快速和优雅 如果您希望有任何不完全支持的自定义行为,您可能可以使用自己的代码扩展Form::select()。我知道Kohana强烈建议扩展其核心课程,但我还没有玩过Kohana3。在科哈纳,你会这么做。根据Kohana3的要求,您也可以这样做,但是将新文件放在application/classes文件夹中 猜测其工作原理的一个大胆尝试:在应用程序/类中创建form.php并输入: &

有没有一种更快的方法可以在select中添加默认选项?
谢谢。

使用现有框架功能和一些智能数据,您的方式看起来非常快速和优雅

如果您希望有任何不完全支持的自定义行为,您可能可以使用自己的代码扩展Form::select()。我知道Kohana强烈建议扩展其核心课程,但我还没有玩过Kohana3。在科哈纳,你会这么做。根据Kohana3的要求,您也可以这样做,但是将新文件放在application/classes文件夹中

猜测其工作原理的一个大胆尝试:在应用程序/类中创建form.php并输入:

<?php
// My controller.
$marcas = ORM::Factory('marca')->
find_all()->
as_array('nome', 'nome');
array_unshift($marcas, '-- Selecione --');
?>

<?php
// My view.
echo Form::select('marca', $marcas, '-- Selecione --')
?>

但是,如果要使用数据库值的数组键(例如,作为查找字段),请小心。Array_unshift将对元素重新编号,因此您可能更喜欢
Arr::unshift($marcas,,'--Selecione--')。另一个优点是返回数组,因此可以在函数调用参数中使用,而不是作为单独的行使用

提及


表单::select()中使用“--Selecione--”参数有什么原因吗
?您应该使用数组键而不是值:
Form::select('marca',$marcas,0)
class Form extends Form_Core {

    public static function select() {
        /**
         * Add the code from http://dev.kohanaframework.org/projects/kohana3-core/repository/revisions/master/entry/classes/kohana/form.php#L252
         * and change it slightly to also include a default value when writing out
         * the form, or even better via another optional function parameter
         */
    }
}
<?php echo Form::select('marcas', Arr::unshift($marcas, '', '--Selecione--') , false);?>