В моем индексе Мне нужно показать результаты двух разных таблиц, которые не связаны никаким отношением. Я сделал это с помощью двух различных моделей поискаYii2: Множественная модель/контроллер в изменении индекса и Url
/* @var $searchModel app\modules\book\models\BookNewSearch */
/* @var $searchModelOld app\modules\book\models\BookOldSearch */
Поэтому у меня есть две вкладки, с двумя Gridview каждая из них результаты, показывающие одной таблицы правильно.
Я использую модуль. Так что мой путь модуля/книга/просмотры/книга старого и модуля/книга/просмотры/книги нового А внутри те папки файлов PHP для представления являются
вид-old.php
и
вид-new.php
Проблемы с кнопкой и контроллером, используемым в ActionColumn. Мне нужна одна вкладка, использующая один контроллер (с разными ссылками тоже), а другой - другой контроллер (всегда разные ссылки).
Внутри ActionColumn я попытался
['class' => 'yii\grid\ActionColumn',
'controller' => 'bookold',
Он добавить 'boookold' в начале пути URL. Но он меня не нашел. Я пробовал также с
'buttons' => [
'view' => function ($url, $model) {
return Html::a('<span class="glyphicon glyphicon-eye-open"></span>',
Yii::$app->urlManager->createUrl([Yii::$app->controller->id.'/view-old',
'id' => $model->id]),
['title' => Yii::t('yii', 'Details'),]);
}],
но Yii :: $ app-> контроллер-> Идентификатор возвращает тот же контроллер по умолчанию. Как я могу продолжить?
Чтобы быть кратким, мне нужно изменить последнюю часть url (view-old и view-new) и сменить контроллер. Мой контроллер выглядит так:
public function actionIndex()
{
$searchModel = new BookNewSearch();
$searchModelOld = new BookOldSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
$dataProviderOld = $searchModelOld->search(Yii::$app->request->queryParams);
return $this->render('index', [
'searchModelOld' => $searchModelOld,
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
'dataProviderOld' => $dataProviderOld,
]);
}
Где actionViewOld действие? Где контроллер BookoldController? –