【问题标题】:Yii2 Change id in URLYii2 更改 URL 中的 id
【发布时间】:2018-03-15 09:08:43
【问题描述】:

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

【问题讨论】:

  • // /index.php?r=post%2Fedit&id=100 假设别名“@postEdit”被定义为“post/edit” echo Url::toRoute(['@postEdit', '帖子'=> 100]);请查看yiiframework.com/doc-2.0/guide-helper-url.html
  • 在哪里可以创建该代码 Url::toRoute(['@postEdit', 'post' => 100])
  • 添加您正在使用的视图以及PostControlleractionView()
  • 非常感谢
  • 您是否更新了您的操作,我已经在我的回答中指出了这一点将您的PostController 中的actionView($id) 更改为actionView($post),并将$id 的所有出现替换为$post 里面的动作代码

标签: yii2 yii2-basic-app


【解决方案1】:

它与点击该操作时到达的链接有关,它可能是

  • 在您的 GridView/your_project_root/views/post/index.php 文件中,您可以在该文件中单击以通过提交 ID 来查看帖子详细信息。

  • 或者你视图中某处的普通链接

1) 对于 GridView,转到您的操作列并将 ['class' => 'yii\grid\ActionColumn'] 更改为以下内容

[ '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]);
        }
    ],
] ,

PostController 中的actionView($id) 更改为actionView($post),并在操作代码中将$id 的所有出现替换为$post

2)如果它是一个普通链接,那么您只需更改该链接的url,如下所示

Html::a($html,["post/view",'post'=>$model->id]);

$model 应替换为适当的变量。

【讨论】:

  • 它不起作用,我正在尝试将 url 中的 id= 更改为 post=;
  • 你也必须更改actionView以及锚链接
【解决方案2】:

看来你只想改GET参数的名字(id->post)。

假设你有默认的应用配置,你需要在合适的控制器(PostController.php)中找到视图方法(称为actionView)。

该方法要么将 $id 参数作为其参数(如 public function actionView($id)),要么稍后从 $_GET 超全局数组中检索“id”(如 $modelId = $_GET['id'];$modelId = Yii::$app-&gt;request-&gt;get('id');

这是你改变它的地方。

要更好地了解 Yii2 应用程序结构和处理请求的方式,请参阅http://www.yiiframework.com/doc-2.0/guide-index.html#application-structure

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多