<?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 --')
?>
是否有更快的方式在选择中添加默认选项? 谢谢。
答案 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而不是单独的行
<?php echo Form::select('marcas', Arr::unshift($marcas, '', '--Selecione--') , false);?>