Максим Тимофеев: Ок, давайте еще раз разберёмся.
Юзер кликает на кнопку фильтрации.
Происходит переход на страницу, url которой имеет get параметры.
Данные параметры передаём в метод search(Yii::$app->request->get()).
Далее определяем переменную $query, значение которой равно Post::find().
И присваиваем его в качестве значения элемента массива query, который выступает параметров объекта ActiveDataProvider.
Это всё дело присваиваем переменной $dataProvider.
Далее, если не была пройдена валидация, то просто возвращаем $dataProvider (без фильтрации).
Если всё норм, тогда добавляем условия фильтрации ($query->andFilterWhere...).
По идее, на этом этапе данная фильтрация как-то попадает в $dataProvider.
Но вот как это происходит???
Одно дело, если бы мы еще раз написали:
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
и фильтрация через переменную $query была бы уже явно применена.
Но этого же не происходит
Максим Тимофеев: Да, я понимаю. И это происходит здесь $dataProvider = $searchModel->search(Yii::$app->request->get()); Но это не касается сути моего вопроса. Такое ощущение, что мы просто не можем понять друг друга.
Если я правильно понимаю, то как раз в этой части кода возвращается обычный dataProvider без условий фильтрации. Но не смотря на это, меня всё же интересует, как именно в dataProvider попадает $query уже с условиями фильтрации. Мы же по сути еще раз НЕ определяем параметр query для ActiveDataProvider.
Дмитрий Байчапанов: А возможно ли ДОзаписать в существующий кэш данные. Просто хочу изначально показать юзеру оперативно результаты поиска по одной группе. А уже по мере того, как он будет переходить от страницы к странице, остальные результаты по остальным группам?
Да, верно. Использую ArrayDataProvider. Получается в этом случае необходимо юзать кэш с уникальным id для каждого юзера, который будет производить поиск?
Хотел еще также уточнить. Что делать с московским временем, которое выдаёт php? Так как официально часовой пояс +4, а на самом то деле +2. И php показывает именно официальную версию.
Я имел в виду, что вдруг, например, на сайте был добавлен пост от пользователя, у которого часовой пояс в профиле Europe/Madrid. А просматривает в данный момент этот пост житель Москвы. То есть здесь '2016-02-12 18:50:51'.' MSK' в конце вместо MSK должен стоять другой параметр. Поэтому и хотел узнать, как его определить. Иле же можно просто написать '2016-02-12 18:50:51'.' Europe/Madrid'?
Здесь в конце времени timezone MSK добавляется вручную. А каким образом можно данный параметр получить в зависимости от того, какая временная зона была у юзера, который добавил пост?
Доброго времени суток!
Подскажите, как создать слайдер изображений, который реализован здесь: ikona.by/gallery_anketa.php?id=6521? Может есть примеры разработок подобных слайдеров?
Заранее благодарен!