有没有办法为 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 小部件设置默认值?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法将 QTableView 模型转换为 QStandardItemModel