cakephp-下拉列表上的自动清空选项

cakephp-下拉列表上的自动清空选项,cakephp,cakephp-2.1,cakephp-2.2,Cakephp,Cakephp 2.1,Cakephp 2.2,有没有办法“自动”将空选项添加到下拉列表中 我想要的是在一个belongTo关系的下拉列表中添加这个选项,该关系可以为null,而不必在视图中添加代码 我相信这应该是一个模型选项,例如在脚手架上可能很有用。您可以覆盖\u findList方法,或者创建一个新的自定义查找和使用Form->create('Model',array('inputDefaults'=>array('empty'=>'Select One'))时,实际上可以在inputDefaults中设置empty。如果这样做有效,但

有没有办法“自动”将空选项添加到下拉列表中

我想要的是在一个belongTo关系的下拉列表中添加这个选项,该关系可以为null,而不必在视图中添加代码


我相信这应该是一个模型选项,例如在脚手架上可能很有用。

您可以覆盖
\u findList
方法,或者创建一个新的自定义查找和使用\u findSelectList)。例如:

protected function _findList($state, $query, $results = array()) {
    $return = parent::_findList($state, $query, $results);
    if ($state === 'after') {
        $return = array('' => 'select one') + $return;
    }
    return $return;
}

或者您可以扩展FormHelper并在默认情况下添加空选项,我认为这会更简单。在调用
$this->Form->create('Model',array('inputDefaults'=>array('empty'=>'Select One'))时,实际上可以在
inputDefaults
中设置
empty
。如果这样做有效,但您不想在每个表单中都这样做,请扩展FormHelper并将其设置为其中的默认值。

form helper方法视图中的
empty
选项有什么问题?没什么,我只是想看看是否存在此自动化。您可以在controller中创建数组来处理此问题issue@moyed事实上,但不是自动的当您使用
inputDefaults
键使用
FormHelper::create()
时,您可以通过表单默认值设置它。如果这是您在应用程序中使用的内容,您可以别名FormHelper并重写create方法以始终包含此内容。所以答案是否定的,CakePHP并没有开箱即用地处理这些案例。我接受你的回答,因为你花时间列举了几种方法。谢谢