Я создал класс для фильтрации списка всех назначений в своем расширении extbase - AppointmentFilter
(Получил эту идею из учебника this с объектом спроса).Как сохранить значения объекта фильтра на протяжении всего сеанса
/**
* action list
* @param \Vendor\Extension\Domain\Model\AppointmentFilter $appointmentFilter
* @return void
*/
public function listAction($appointmentFilter = null) {
if ($appointmentFilter === null) {
$appointmentFilter = new \Vendor\Extension\Domain\Model\AppointmentFilter();
}
$appointments = $this->appointmentRepository->findAppointmentsForList($appointmentFilter);
$this->view->assignMultiple(array(
'appointments' => $appointments,
'appointmentFilter' => $appointmentFilter
));
}
До сих пор она работает нормально, но есть проблема, когда я выбираю другое действие, как edit
или new
, потому что я всегда прохожу весь AppointmentFilter
объект этих действий для того, чтобы сохранить свои ценности. Если я этого не сделаю и вернусь к list
, мой контроллер снова создаст новый фильтр со значениями по умолчанию.
Теперь у меня много действий, поэтому очень сложно проходить вокруг этого фильтра все время.
Есть ли простой способ заставить его оставаться неизменным при входе в систему после того, как пользователь меняет его один раз, не передавая его во всех действиях или не создавая для него таблицу базы данных?
Если так - как?
Возможно, вы можете сохранить эти настройки в сеансе? http://stackoverflow.com/questions/17440847/typo3-extbase-set-and-get-values-from-session –
отлично, с решением этого ответа он работает :) –