2016-10-03 49 views
1

我想有會話的動態值filterParameters的默認值如何與會話過濾器有默認值索納塔管理]

此代碼的工作:

/** 
* Default Datagrid values 
* 
* @var array 
*/ 
protected $datagridValues = array(
    'applications' => array('value' => 'Sport TV'), 
    '_sort_order' => 'ASC' 
); 

// Fields to be shown on filter forms 
protected function configureDatagridFilters(DatagridMapper $datagridMapper) 
{ 
    $datagridMapper 
     ->add('title') 
     ->add('applications', null, array('label' => 'Chaîne'), null, array('expanded' => true, 'multiple' => true)); 
} 

但是,當我加入會議上,他不希望我用這個 功能外:

public function getApplicationsSession() 
{ 
    $session = new Session(); 
    return $session->get('applications'); 
} 

/** 
* Default Datagrid values 
* 
* @var array 
*/ 
protected $datagridValues = array(
    'applications' => array('value' => $this->getApplicationsSession()), 
    '_sort_order' => 'ASC' 
); 

我有這樣的錯誤:

Parse Error: syntax error, unexpected '$this' (T_VARIABLE)

感謝幫助我。

回答

1

這部分代碼是錯誤原因:

protected $datagridValues = array(
    'applications' => array('value' => $this->getApplicationsSession()), 
             ^---- syntax error ! 
    '_sort_order' => 'ASC' 
); 

僞變量$this時可用的方法是從對象上下文中調用。 $this是調用對象(通常是方法所屬於的對象的引用... http://php.net/manual/en/language.oop5.basic.php

爲了解決這個,你應該重寫getFilterParameters()方法:

public function getFilterParameters() 
{ 
    $this->datagridValues['applications']['value'] = $this->getApplicationsSession(); 

    return parent::getFilterParameters(); 
}