2011-11-14 73 views
13

如何更改SonataAdminBundle中列表操作的默认实体顺序?索纳塔管理软件包订单


答案:) 添加到您的管理类

protected $datagridValues = array(
    '_page' => 1, 
    '_sort_order' => 'DESC', // sort direction 
    '_sort_by' => 'id' // field name 
); 

回答

6

您可以像这样通过构造函数添加其他排序顺序或者设置一个默认:

public function __construct($code, $class, $baseControllerName) 
{ 
    parent::__construct($code, $class, $baseControllerName); 

    if (!$this->hasRequest()) { 
     $this->datagridValues = array(
      '_page'  => 1, 
      '_sort_order' => 'ASC',  // sort direction 
      '_sort_by' => 'artist_id' // field name 
     ); 
    } 
} 
+0

谢谢。我会尝试。 – rtyshyk

+0

'警告:缺少Neon \ CoreBundle \ Controller \ OrderAdminController :: __ construct()的参数1。' – rtyshyk

+0

请放在这里请使用命名空间列表 – pilot

9

最好不要重写构造函数。 但是,您可以覆盖Admin::configure()方法并设置datagridValues阵列的某个元素。

见例如:

public function configure() 
{ 
    parent::configure(); 

    $this->datagridValues['_sort_by'] = 'name'; 
    $this->datagridValues['_sort_order'] = 'DESC'; 
} 
+2

的回答为了安全起见,我还要添加'parent: :配置()'。 – likeitlikeit

+2

此方法为空。它只存在于这种情况下。如果我理解正确。但是你是对的,调用父方法会更安全。我调整了这个例子。 –

相关问题