php - 伊2。应用自定义 URL 规则类

标签 php url yii2 yii2-basic-app

我创建了一个自定义 URL 规则,并希望在其中添加一些逻辑,但 parseRequestcreateUrl 方法未执行。

<?php
namespace app\components;

use yii\base\Object;
use yii\web\UrlRuleInterface;

/**
 * {@inheritDoc}
 */
class CustomUrlRule extends Object implements UrlRuleInterface
{
    /**
     * {@inheritDoc}
     */
    public function createUrl($manager, $route, $params)
    {
        echo __METHOD__;
        die();
    }

    /**
     * {@inheritDoc}
     * @throws \yii\base\InvalidConfigException
     */
    public function parseRequest($manager, $request)
    {
        echo __METHOD__;
        die();
    }
}

然后写入UrlManager $rules

    'enablePrettyUrl'     => true,
    'showScriptName'      => false,
    'enableStrictParsing' => true,
    'rules'               => [
        'class'   => 'app\components\CustomUrlRule',
    //other rules...

]

但是代码没有执行。我仍然可以查看我的应用程序的页面。如何应用我无用的CustomUrlRule

最佳答案

正确的 UrlManager 示例配置是:

'rules' => [
    ['class' => 'MyUrlRule', 'pattern' => '...', 'route' => 'site/index', ...],
    // ...
]

您需要将其包装在另一个数组中。

编辑:您不必像我之前发布的那样扩展 yii\web\UrlRule 而不是 yii\base\Object,只需要正确的接口(interface)即可。

关于php - 伊2。应用自定义 URL 规则类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41873686/

相关文章:

Yii2 - 更改 jQuery 版本

php - MySQL查询拉一行并显示结果的第一个字母

html - srcset 中是否可以有一个嵌入空白的路径名?

java - Spring Boot 中的 @PathVariable 在 URL 中带有斜杠

gridview - yii2 gridview 切换列

sql - Yii2 迁移转储 SQL

php - 编写使用 :memory to disk 加载的 SQLite 数据库

php - 仅加载图像一次,然后复制到多个位置?

php - LARAVEL:获取一系列计划任务以在管理仪表板中输出

regex - 使用扩展正则表达式的 Sed 反向引用