Вопрос вот в чем. Как можно сохранить данные, которые были переданы через фильтры? Если с шаблоном я сделал сохранение в сессию, то с фильтрами так не сработает, т.к. нужно в search передать post(), а если меняется шаблон, то POST со значениями из фильтра теряются.
Может можно как-то записать в сессию значения фильтров и потом из сессии передать их в POST? Пробовал через setBodyParams
Контроллер
Код: Выделить всё
public function actionProducts($url)
{
$model = $this->findModelCategory($url);
$searchModel = new ProductsSearch;
$settings = Settings::findOne(Settings::SETTING_DEFAULT);
$session = Yii::$app->session;
$session->remove('options');
$itemView = ($session->has('itemViews')) ? $session->get('itemViews') : '_product_item';
if(\YIi::$app->request->isAjax){
\Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
// if(\Yii::$app->getRequest()->post()['ProductsSearch']['options']){
// $session['options'] = [
// 'options' => \Yii::$app->getRequest()->post()['ProductsSearch']['options'],
// ];
// $session->set('options', \Yii::$app->getRequest()->post()['ProductsSearch']['options']);
// }
// if($session->has('options')){
// \Yii::$app->getRequest()->setBodyParams(['ProductsSearch' => [$session->get('options')]]);
// }
if(\Yii::$app->getRequest()->post('itemViews')){
$session->set('itemViews', \Yii::$app->getRequest()->post('itemViews'));
}
$itemView = ($session->has('itemViews')) ? $session->get('itemViews') : '_product_item';
$dataProvider = $searchModel->search(\Yii::$app->getRequest()->post(), $model->productscategory_id);
return $this->renderAjax('_listview_products', [
'dataProvider' => $dataProvider,
'itemView' => $itemView,
]);
}
$dataProvider = $searchModel->search(\Yii::$app->getRequest()->post(), $model->productscategory_id);
return $this->render('products', [
'model' => $model,
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
'settings' => $settings,
'itemView' => $itemView,
]);
}