【问题标题】:Yii links not working properlyYii 链接无法正常工作
【发布时间】:2015-01-28 20:27:29
【问题描述】:

在我的 Yii 应用程序中,我在 Yii 的 urlManager 中定义了如下规则:

'urlManager'=>array(
            'urlFormat'=>'path',
            'showScriptName'=>false,
            'rules'=>array(
                'izletiste/<grad:\.*?>/<naziv:.*?>/<id:d+>'=>'izletiste/show',
                '<controller:\w+>/<id:\d+>'=>'<controller>/view',
                '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
                '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
            ),
        ),

现在,当我想创建一个链接时,我使用以下结构:

<?php echo CHtml::link(CHtml::encode($izletiste->nazivIzletista),array("izletiste/show","grad"=>"Paris","naziv"=>"Some text", "id"=>$id)); ?>

我得到的网址如下:

http://mywebsite.com/izletiste/Paris/Some+text/21

但是当我点击链接时,我得到以下错误:

错误 404

系统找不到请求的动作“Paris”。

我的问题是为什么会发生这种情况,为什么 Yii 不承认应该调用 izletiste/show 动作而不是 izletiste/paris,以及如何解决这个问题?

【问题讨论】:

  • “grad”=>“paris”是什么意思,根本不管是巴黎还是巴黎!
  • 我刚刚意识到,\.*?d+ 的正则表达式是错误的。它应该分别是&lt;grad:\w+&gt;&lt;id:\d+&gt;。你想通过使用&lt;grad:\.*?&gt; 来达到什么目的?
  • 是的,这是第二个错误。感谢您指出这一点!

标签: yii yii-components yii-url-manager


【解决方案1】:

尝试像这里一样更改第一条规则:

'izletiste/<grad>/<naziv>/<id:\d+>'=>'izletiste/show'

【讨论】:

  • 有什么区别?
猜你喜欢
  • 1970-01-01
  • 2012-12-27
  • 2014-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-05
  • 2017-04-30
  • 2017-11-28
相关资源
最近更新 更多