是否可以将Yii2 basic中的URL中的id更改为我的URL实际为
的其他内容http://localhost:8585/yii40/wfp/web/post/view?id=368
我想将其更改为
http://localhost:8585/yii40/wfp/web/post/view?post=368
我的观点是
public function actionView($id)
{
return $this->render('view', [
'model' => $this->findModel($id),
]);
}
答案 0 :(得分:1)
您似乎只想更改GET
参数的名称(id-> post)。
假设您有默认的应用配置,您需要在适当的控制器(PostController.php)中找到视图方法(称为actionView)。
该方法要么将$ id参数作为参数(如public function actionView($id)
),要么稍后从$ _GET超全局数组中检索'id'(如$modelId = $_GET['id'];
或$modelId = Yii::$app->request->get('id');
)
这是您更改它的地方。
要更好地了解Yii2应用程序结构和处理请求的方法,请参阅http://www.yiiframework.com/doc-2.0/guide-index.html#application-structure
答案 1 :(得分:1)
这与点击该行动的链接有关,可能是
在/your_project_root/views/post/index.php
, ['class' => 'yii\grid\ActionColumn']
文件中,您可以通过提交ID来点击该文件以查看帖子详细信息。
或者您视图中的普通链接
1)对于GridView,请转到您的操作列并将[ 'class' => 'yii\grid\ActionColumn' ,
'header' => 'Actions' ,
'template'=>'{view}{update}{delete}',
'buttons'=>[
'view'=>function($url,$model){
$html = '<span class="glyphicon glyphicon-search"></span>';
return Html::a($html,["post/view",'post'=>$model->id]);
}
],
] ,
更改为以下
actionView($id)
并将PostController
中的actionView($post)
更改为$id
,并将$post
的所有内容替换为操作代码中的url
。
2)如果是普通链接,那么您只需更改该链接的Html::a($html,["post/view",'post'=>$model->id]);
,如下所示
$model
其中@OneToMany
应替换为适当的变量。