2016-10-03 13 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

コードのこの部分は、エラーの原因は次のとおりメソッドがオブジェクトコンテキスト内から呼び出されたときに、$this

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

擬似変数が利用可能です。

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

    return parent::getFilterParameters(); 
} 
$this

http://php.net/manual/en/language.oop5.basic.phpはそれを解決するために...通常呼び出し元のオブジェクト(メソッドが属するオブジェクトへの参照である、あなたはgetFilterParameters()メソッドをオーバーライドするべき

関連する問題