2011-11-14 113 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

此方法爲空。它只存在於這種情況下。如果我理解正確。但是你是對的,調用父方法會更安全。我調整了這個例子。 –