我目前正在使用 Sonata Admin 生成一个数据网格,其中的实体具有 read
bool 字段。我想过滤此属性,将其默认设置为 false
。
因此,我将以下内容添加到我的 Admin 类中:
protected $datagridValues = array(
'read' => array('value' => false),
);
然而,它似乎不起作用。生成的选择列表如下:
<select id="filter_read_value" name="filter[read][value]" class="span8">
<option value=""></option>
<option value="1">oui</option>
<option value="2">non</option>
</select>
我认为这是正常的,因为 false 的 value
将为 0,这是空选项。
所以,我使用了一些常量,例如:
const STATUS_READ = 1;
const STATUS_UNREAD = 2;
它有效,但我想知道是否有任何适当的解决方案来避免这两个不必要的常量?
最佳答案
您也许可以使用 getFilterParameters:
<?php
public function getFilterParameters()
{
$this->datagridValues = array_merge(array(
'booleanField' => array(
'value' => '0',
)
),
$this->datagridValues
);
return parent::getFilterParameters();
}
关于sonata-admin - 奏鸣曲管理员 : setting a filter to false by default?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18237491/