有没有办法为 sfWidgetFormFilterDate 小部件设置默认值?

Posted

技术标签:

【中文标题】有没有办法为 sfWidgetFormFilterDate 小部件设置默认值?【英文标题】:Is there a way to set the default values for sfWidgetFormFilterDate widget? 【发布时间】:2010-12-20 10:29:36 【问题描述】:

我的 /lib/filter/base/ 文件夹中有一个自动生成的 BaseBlahBlahBlahFilter.class 文件。它包含“数据”类型字段的以下行:

'date'         => new sfWidgetFormFilterDate(array('from_date' => new sfWidgetFormDate(), 'to_date' => new sfWidgetFormDate(), 'with_empty' => true)),

当表单加载时,它会向我显示所有月/日/年下拉列表的空值。有没有办法可以为该下拉菜单设置默认值(例如今天的日期)?

【问题讨论】:

【参考方案1】:

sfWidgetFormSchema 中的 a bug 导致在渲染小部件时忽略默认小部件的值。申请a patch后你就知道了

'date'         => new sfWidgetFormFilterDate(array(
    'from_date' => new sfWidgetFormDate(array('default' => date())), 
    'to_date' => new sfWidgetFormDate(array('default' => date())), 
    'with_empty' => true)),

例如default 选项将起作用。

【讨论】:

【参考方案2】:

必须通过表单文件设置默认值,而不是过滤器类。只需在 /lib/form 中查找您的“BlahBlahBlah.class”文件并检查它是否具有 configure() 方法。如果没有,请创建它:

class BlahBlahBlahForm extends sfForm

  public function configure()
  

  

您始终可以使用“普通”类覆盖基类。只需创建一个具有相同名称的文件,减去“Base”部分并将其添加到您的 /lib/form(或 /lib/filter)目录。

从那里您可以执行以下操作:

$this->setDefault('from_date', date('Y/m/d'));
$this->setDefault('to_date', date('Y/m/d'));

在上面的示例中,这会将其设置为当前日期。根据自己的需要进行修改。

Forms 书是一个很好的阅读起点。你可以找到它here。

【讨论】:

【参考方案3】:

TheGrandWazoo 的回答对于设置 sfWidgetFormDate 的默认值是正确的,但是,我们谈论的是 sfWidgetFormFilterDate,它是 sfWidgetFormDateRange 的扩展。

sfWidgetFormDateRange 封装了两个独立的日期小部件。在这种情况下,您可以通过以下方式设置日期:

$form->setDefault('date', array('from' => date('Y/m/d'), 'to' => date('Y/m/d')));

【讨论】:

以上是关于有没有办法为 sfWidgetFormFilterDate 小部件设置默认值?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法将数字单词转换为整数?

有没有办法检查变量是不是为整数? C++

有没有办法将 QTableView 模型转换为 QStandardItemModel

有没有办法为android生成用户ID?

有没有办法为 TextBox 实现 Redo() 函数? C#

Symfony - 有没有办法将实体设置为全局?