在我的索引中,我需要显示两个不同的表的结果,这些表没有任何关系链接。 我通过使用两种不同的搜索模型完成了这项工作
/* @var $searchModel app\modules\book\models\BookNewSearch */
/* @var $searchModelOld app\modules\book\models\BookOldSearch */
所以我有两个标签,每个标签都有两个Gridview,每个标签正确显示一个表的结果。
我正在使用模块。所以我的路径是模块/书籍/观看/书籍和模块/书籍/观点/书籍新 在这些文件夹中,视图的php文件是
视图-old.php
和
视图-new.php
ActionColumn中使用的按钮和控制器出现问题。 我需要一个“tab”使用一个控制器(也有不同的链接),另一个使用另一个控制器(总是不同的链接)。
Inside 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-&gt; controller-&gt; id返回相同的默认控制器。 我该怎么办?
为简明起见,我需要更改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,
]);
}
答案 0 :(得分:0)
在每个网格视图中尝试此操作:
[
'class' => 'yii\grid\ActionColumn',
'contentOptions' => ['style' => 'width:260px;'],
'header'=>'Actions',
'template' => '{view} {delete}',
'buttons' => [
//view button
'view' => function ($url, $model) {
return Html::a('<span class="fa fa-search"></span>View', $url, [
'title' => Yii::t('app', 'View'),
'class'=>'btn btn-primary btn-xs',
]);
},
],
'urlCreator' => function ($action, $model, $key, $index) {
if ($action === 'view') {
$url ='/controller/view?id='.$model->id;
return $url;
}
}
],