2016-10-03 1 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(); 
} 
Смежные вопросы