Нужен совет по выборкам в GridView

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
mageon
Сообщения: 10
Зарегистрирован: 2018.12.06, 10:19

Нужен совет по выборкам в GridView

Сообщение mageon »

Здравствуйте! На странице GridView с Таблица1 и второй с Таблица2 в Таблице2 много записей привязанных к одной записи из Таблица1.
Надо: при клике на строке в Таблица1 фильтровать Таблицу2 по id строки из Таблица1.
Сделал: подключил свой файл с jquery, ловлю там клик на строке Т1. Получаю id строки и $.ajax-ом запускаю php скрипт записи id в $_SESSION['id']. При удачном выполнении $.ajax-а продолжаю с $.pjax.reload({container: '#some_pjax_id', async: false}); обновлением секции документа. В секции, если есть $_SESSION['id'], то

Код: Выделить всё

<?php Pjax::begin(['id' => 'some_pjax_id', 'timeout' => 5000]) ?>
        
        //Получаю модель для Т2
        <?php $searchModeIridiumSim = new IridiumSimSearch();
        
        //Получаю параметры фильтрации
        $params = Yii::$app->request->getQueryParams();
        $IridiumSimSearch = $params['IridiumSimSearch'];
       
        //Добавляю нужный параметр id
        $IridiumSimSearch['id'] = $_SESSION['id'];
        $params['IridiumSimSearch'] = $IridiumSimSearch;
        
        //Сохраняю параметры
        Yii::$app->request->setQueryParams($params);
        
        //Получаю провайдер с результатом фильтра 
        $dataProviderIridiumSim = $searchModeIridiumSim->search(Yii::$app->request->queryParams);?>
        <div id="tabs-1" class="tabs-text">
            
            //Переформировываю с передачей модели и нового провайдера
            <?= $this->renderAjax('../iridium-sim/index', ['dataProviderSim'=>$dataProviderIridiumSim, 'searchModelSim' => $searchModeIridiumSim]) ?>
        </div>
<?php Pjax::end() ?>
Выглядит как-то "квадратненько". Подскажите пожалуйста, в yii есть путь по эффективней?
Заранее благодарен!
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Нужен совет по выборкам в GridView

Сообщение andku83 »

возможно подойдет вариант установки пустого formName() для обоих (или хотя бы IridiumSimSearch) моделей и тогда будет возможность писать ссылки фильтрации в формате

Код: Выделить всё

Url::to(['/iridium-sim/index', 'id' => $model->id])
Ответить