Kohana框架:添加默认选项

时间:2010-09-13 18:34:07

标签: php orm frameworks rad kohana-3

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

是否有更快的方式在选择中添加默认选项? 谢谢。

2 个答案:

答案 0 :(得分:0)

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

如果您想要完全支持任何自定义行为,您可以使用自己的代码扩展Form :: select()。我知道Kohana强烈建议扩展其核心课程,但我还没有玩过Kohana3。在Kohana2中你会做as seen here。根据Kohana3的this tutorial,您可以类似地执行此操作,但将新文件放在application / classes文件夹中。

猜测这是如何工作的疯狂刺:在application / classes中创建form.php并输入:

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
         */
    }
}

答案 1 :(得分:0)

但是如果您使用数组值作为数据库值,请注意,例如作为查找字段。 Array_unshift会重新编号你的元素,所以你可能更喜欢Arr::unshift($marcas, '', '--Selecione--');。另一个优点是返回数组,所以你可以在函数调用中使用params而不是单独的行

参考Arr::unshift()

<?php echo Form::select('marcas', Arr::unshift($marcas, '', '--Selecione--') , false);?>