【问题标题】:cakephp - auto empty option on drop down listcakephp - 下拉列表中的自动清空选项
【发布时间】:2012-09-11 10:34:10
【问题描述】:

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

我正在寻找的是将此选项添加到可以为空的 belongsTo 关系的下拉列表中,而无需在视图上添加代码。

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

【问题讨论】:

  • Form helper 方法视图中的empty 选项有什么问题?
  • 没什么,我只是想看看这个自动化是否存在
  • 你可以在控制器中创建数组来处理这个问题
  • @moyed 真相,但不是自动
  • 您可以在使用FormHelper::create() 时使用inputDefaults 键通过表单默认值进行设置。如果这是您在应用程序中使用的东西,您可以为 FormHelper 设置别名并覆盖 create 方法以始终包含它。 book.cakephp.org/2.0/en/core-libraries/helpers/…

标签: cakephp cakephp-2.1 cakephp-2.2


【解决方案1】:

您可以覆盖_findList 方法或进行新的自定义查找并使用_findList(称它为_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 并将其设置为默认值。

【讨论】:

  • 所以响应是否定的,CakePHP 不会开箱即用地处理这些情况。我接受您的回答,因为您花时间列举了几种方法。谢谢!
猜你喜欢
  • 1970-01-01
  • 2020-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-20
  • 1970-01-01
  • 2020-03-31
  • 1970-01-01
相关资源
最近更新 更多