我正在按下查看按钮创建操作。这是我正在创建的网址
return Url::to(['site/usermessages?id='.$model->ID]);
我面临的问题是我无法理解将当前模型返回到此生成的网站的位置, 有人能给我建议吗?
'buttons' => [
//view button
'delete' => 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') {
return Url::to(['site/usermessages?id='.$model->ID]);
}
}
我想在新渲染的网站中显示文字。例如,在site/usermessages?id=2
我想要echo $model->text
,但正如我之前所说,我没有在那里通过模型。
谢谢你的帮助。
答案 0 :(得分:1)
我不知道您是否要禁用默认视图和删除按钮(因为您的示例中有错误代码)
但是使用模板,您可以设置应该可用的按钮(已移除{view} {delte}等) 如果一个动作的“控制器”应该不同,我还举例说明。例如对于usermessages,使用控制器“site”,对于其他按钮操作(如果它们不被删除),将使用当前控制器。
[
'class' => 'yii\grid\ActionColumn',
'header'=>Yii::t('app', 'Actions'),
'template' => '{usermessages}',
'buttons' => [
'usermessages' => 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 ==='usermessages') {
return Yii::$app->getUrlManager()->createUrl(['site/'.$action, 'id' => $key]);
} else {
return Yii::$app->getUrlManager()->createUrl([$action, 'id'=>$key]);
}
},
],
您的控制器代码
public function actionUsermessages($id)
{
return $this->render('usermessages', [
'model' => $this->findModel($id),
]);
}