Метод form-> bindRequest () предназначен для заполнения базового класса данных формы данными из запроса.Когда вы вызываете его из предложения else, вы связываете форму с запросом, который не содержит данных, эффективно очищая форму.Чтобы заполнить форму вручную, вам нужно вызвать form-> setData ().Затем, предполагая, что вы передаете свою $ filterForm в вызове метода render () (я не вижу весь ваш метод действия), ваши параметры фильтра должны быть заполнены.
Например, предполагая, что TourFilter является классом данныхдля вашей формы фильтра вместо:
//bind the updated request to the form
$filterForm->bindRequest($request);
Вам нужно что-то вроде:
// This line can go at the top, use $filterData in the second line
$filterData = new TourFilter($this->container, $destinations);
...
$filterData->setParams($params);
$filterForm->setData($filterData);
Это может быть не совсем верно, так как я не знаю имя атрибута TourFilter, которыйотображается в поле параметров вашей формы.
Если вы не собираетесь использовать $ form-> getData () для получения значений из вашей формы (в данном случае 'params'), вам не нужно вызывать form-> bindRequest () вообще.Это обычно полезно, когда базовый класс данных формы является сущностью и сохраняет вручную скопированные значения из формы перед сохранением сущности в БД.Например:
$filterForm->bindRequest($request);
$filterData = $filterForm->getData();
$params = $filterData->getParams();