gpt4 book ai didi

php - 如何在 yii2-localeurls 中禁用特定 Controller /模块的语言环境重定向

转载 作者:可可西里 更新时间:2023-10-31 23:04:01 28 4
gpt4 key购买 nike

我正在使用 yii2-localeurls在 Yii2 中与语言环境相处。一切都很好。通过阅读文档,您会看到,重定向到配置的语言或默认语言会自动发生(即使 enableLanguageDetectionfalse )。我创建了一个 ticket@github以确保此功能即将推出。

这是我的罚款 main.php配置:

'urlManager' => [
'class' => 'codemix\localeurls\UrlManager',
'languages' => [
'en' => 'en-gb',
'de' => 'de-de'
],
'enableLanguageDetection' => false,
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [

],
],

main.php中的默认语言配置根据 $language :

'language' => 'en-gb',

现在,我为 API 案例创建了一个模块,其路由如下所示。在哪里api路由参数映射到我的 API模块:

API模块路由

application.com/api/<controller>/<action>

模块类

//namespace define
namespace app\modules\api;

use Yii;

/**
* Class api
*
* @package app\modules\api
*/
class api extends \yii\base\Module
{

// ####################################### Class attributes // #####################################################

/**
* Controller namespace
* @var string
*/
public $controllerNamespace = 'app\modules\api\controllers';


// ########################################## Class methods // #####################################################

/**
* Init API module
*/
public function init()
{
//call parent class init
parent::init();
}
}

如果 API 模块被调用,我不希望 yii2-localeurls 重定向到语言环境。找不到有关禁用特定重定向的任何信息 module , controllerroute .

最佳答案

更新/回答:

yii2-localurl现在允许定义 ignoreLanguageUrlPatterns 以从区域设置匹配中排除路由。查看Documentation .

在我的例子中,我想忽略 /api 被 localurl 转换。我的 yii2 配置 如下所示。它就像一个魅力。

'components' => [
'urlManager' => [
'class' => 'codemix\localeurls\UrlManager',
'languages' => [
'en' => 'en-gb',
'de' => 'de-de'
],
'enableLanguageDetection' => false,
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [

],
// Ignore / Filter route pattern's
'ignoreLanguageUrlPatterns' => [
'#^api/#' => '#^api/#',
],
],
],

关于php - 如何在 yii2-localeurls 中禁用特定 Controller /模块的语言环境重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30568692/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com