Yii2更改网址

时间:2018-03-15 09:08:43

标签: yii2 yii2-basic-app

是否可以将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),
            ]);
        }

2 个答案:

答案 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应替换为适当的变量。