Ошибка после заполнения форм
Re: Ошибка после заполнения форм
Если нужно два вывода информации (две таблицы), то нужно в контроллере и прописывать две модели поиска, два поиска информации и передавать в представление два провайдера и два сёрча --- Но каждая модель поиска будет со своим именем? Как их именовать- например? И как именовать два провайдера и два серча?
Re: Ошибка после заполнения форм
Если выводить информацию из двух разных моделей, то логично, что будет две модели поиска. А как назвать переменную, то это уже не вопрос форума. Как назовёте, так и будете её использовать. Главное, что переменная будет в себе содержать.dorofej85 писал(а): ↑2021.07.07, 15:39 Если нужно два вывода информации (две таблицы), то нужно в контроллере и прописывать две модели поиска, два поиска информации и передавать в представление два провайдера и два сёрча --- Но каждая модель поиска будет со своим именем? Как их именовать- например? И как именовать два провайдера и два серча?
А если информация из одной модели, то зачем разделять эту информацию на две таблицы?
Re: Ошибка после заполнения форм
Как думаете, если я сделаю вот так. Это будет работать???
Код: Выделить всё
public function actionIndex()
{
$searchModelOne = new UsersOrdersSearch;
$dataProviderOne = $searchModelOne->search(\Yii::$app->getRequest()->get());
$searchModelTwo = new UsersOrdersSearch;
$dataProviderTwo = $searchModelTwo->search(\Yii::$app->getRequest()->get());
$searchModelThree = new UsersOrdersSearch;
$dataProviderThree = $searchModelThree->search(\Yii::$app->getRequest()->get());
return $this->render('index', [
'searchModelOne' => $searchModelOne,
'dataProviderOne' => $dataProviderOne,
'searchModelTwo' => $searchModelTwo,
'dataProviderTwo' => $dataProviderTwo,
'searchModelThree' => $searchModelThree,
'dataProvideThreer' => $dataProviderThree,
]);
}
Код: Выделить всё
echo GridView::widget([
'id' => 'one',
'dataProvider'=> $dataProviderOne,
'filterModel' => $searchModelOne,
'columns' => $gridColumns,
]);
echo GridView::widget([
'id' => 'two',
'dataProvider'=> $dataProviderTwo,
'filterModel' => $searchModelTwo,
'columns' => $gridColumns,
]);
echo GridView::widget([
'id' => 'three',
'dataProvider'=> $dataProviderThree,
'filterModel' => $searchModelThree,
'columns' => $gridColumns,
]);
Осталось дело за малым, поменять названия поисковых моделей
Код: Выделить всё
UsersOrdersSearch
P.S.
Не вижу смысла в выводе нескольких таблиц на одной странице в виде GridView, но это лично моё мнение.
Re: Ошибка после заполнения форм
Хорошо а если вы поменяете названия поисковых моделей и будете использовать все (2 или три) сеарч модели то получается в экшн индекс
надо будет прописывать так $searchModelOne = new UsersOrdersSearchold;
$dataProviderOne = $searchModelOne->search(\Yii::$app->getRequest()->get());
$searchModelTwo = new UsersOrdersSearchnew;
$dataProviderTwo = $searchModelTwo->search(\Yii::$app->getRequest()->get()); так ? А у вас последний GridView указывает что у вас идет фильтрация по одним и тем же признакам то есть система фильтрация во всех трех гридах выведет у вас одни и теже показатели? Тогда как в каждом гридевьюве вы реализуете разные параметры фильтрации?
надо будет прописывать так $searchModelOne = new UsersOrdersSearchold;
$dataProviderOne = $searchModelOne->search(\Yii::$app->getRequest()->get());
$searchModelTwo = new UsersOrdersSearchnew;
$dataProviderTwo = $searchModelTwo->search(\Yii::$app->getRequest()->get()); так ? А у вас последний GridView указывает что у вас идет фильтрация по одним и тем же признакам то есть система фильтрация во всех трех гридах выведет у вас одни и теже показатели? Тогда как в каждом гридевьюве вы реализуете разные параметры фильтрации?
Re: Ошибка после заполнения форм
Сообщение unknownby сообщите что нить по последнему вопросу?
Re: Ошибка после заполнения форм
Абсолютно верно подмечено, что фильтра в одном и другом случае будут передаваться во все методы search(), из вашего \Yii::$app->getRequest()->get(), но я написал в прошлом сообщении вот что:dorofej85 писал(а): ↑2021.07.08, 11:16 Хорошо а если вы поменяете названия поисковых моделей и будете использовать все (2 или три) сеарч модели то получается в экшн индекс
надо будет прописывать так $searchModelOne = new UsersOrdersSearchold;
$dataProviderOne = $searchModelOne->search(\Yii::$app->getRequest()->get());
$searchModelTwo = new UsersOrdersSearchnew;
$dataProviderTwo = $searchModelTwo->search(\Yii::$app->getRequest()->get()); так ? А у вас последний GridView указывает что у вас идет фильтрация по одним и тем же признакам то есть система фильтрация во всех трех гридах выведет у вас одни и теже показатели? Тогда как в каждом гридевьюве вы реализуете разные параметры фильтрации?
Объясните мне, зачем вам два грида и что вы хотите этими гридами выводить?И скорее всего смотреть как правильно принять переменные из get(), чтобы поиск работал правильно во всех таблицах.
P.S.
Не вижу смысла в выводе нескольких таблиц на одной странице в виде GridView, но это лично моё мнение.
Но прежде чем объяснять, предлагаю вам подумать вот над чем.
1. Можно же сделать разные страницы для двух разных гридов. Один грид для пользователей, второй грид для постов. Информация отображается в нужном месте и глаза не разбегаются на две таблицы.
2. Если нужно вывести какой пользователь написал пост, то выводите пользователя через связь в грид с постами.
т.е. у вас посты и у каждого есть автор (пользователь), вот и выводите его имя в гриде.