为什么 Yii2 模块单独配置在基本应用程序中不起作用?
Why Yii2 module separate configuration does not work in basic app?
我有一个 yii2 基本应用程序,包含 2 个部分(网络和移动服务)。
我创建了一个模块来处理从移动设备发出的 restful 请求。我想将此模块配置为休息。所以我在模块目录中为这个模块创建了一个配置文件。如yii2 documentation for modules
中所述
/config/config.php:
return [
'components' => [
'urlManager' => [
'class' => 'yii\web\UrlManager',
// Disable index.php
'showScriptName' => false,
// Disable r= routes
'enablePrettyUrl' => true,
'enableStrictParsing' => false,
'rules' => array(
[
'class' => 'yii\rest\UrlRule',
'controller' => 'mobile/mobile-clients',
'extraPatterns' => ['GET search' => 'search']
],
),
],
'request' => [
'class' => '\yii\web\Request',
'enableCookieValidation' => false,
'parsers' => [
'application/json' => 'yii\web\JsonParser',
],
],
]
];
模块class如下:
<?php
namespace app\modules\Mobile;
use Yii;
use yii\base\Module;
class MobileService extends Module {
public $controllerNamespace = 'app\modules\Mobile\controllers';
public function init() {
parent::init();
Yii::configure($this, require(__DIR__ .DIRECTORY_SEPARATOR
.'config'.DIRECTORY_SEPARATOR .'config.php'));
}
}
问题是请求组件没有按预期工作而在应用程序配置中配置时它工作正常(config/main.php)
urlManager 相同。
有什么想法吗?
我的问题的解决方案是创建 api 应用程序,它是 yii2 基本应用程序中的一个新应用程序。它共享模型和供应商目录,但有自己的配置和入口脚本 (index.php)。这是solution link了解更多信息。
编辑:
不要忘记在 api.config 文件中添加用户组件
'user' => [
'identityClass' => 'app\models\User',
'enableAutoLogin' => false,
],
我认为使用 yii2 高级应用程序结构更适合像我这样的情况。但是这个解决方案非常有效:) .
最佳。
我有一个 yii2 基本应用程序,包含 2 个部分(网络和移动服务)。
我创建了一个模块来处理从移动设备发出的 restful 请求。我想将此模块配置为休息。所以我在模块目录中为这个模块创建了一个配置文件。如yii2 documentation for modules
中所述/config/config.php:
return [
'components' => [
'urlManager' => [
'class' => 'yii\web\UrlManager',
// Disable index.php
'showScriptName' => false,
// Disable r= routes
'enablePrettyUrl' => true,
'enableStrictParsing' => false,
'rules' => array(
[
'class' => 'yii\rest\UrlRule',
'controller' => 'mobile/mobile-clients',
'extraPatterns' => ['GET search' => 'search']
],
),
],
'request' => [
'class' => '\yii\web\Request',
'enableCookieValidation' => false,
'parsers' => [
'application/json' => 'yii\web\JsonParser',
],
],
]
];
模块class如下:
<?php
namespace app\modules\Mobile;
use Yii;
use yii\base\Module;
class MobileService extends Module {
public $controllerNamespace = 'app\modules\Mobile\controllers';
public function init() {
parent::init();
Yii::configure($this, require(__DIR__ .DIRECTORY_SEPARATOR
.'config'.DIRECTORY_SEPARATOR .'config.php'));
}
}
问题是请求组件没有按预期工作而在应用程序配置中配置时它工作正常(config/main.php)
urlManager 相同。
有什么想法吗?
我的问题的解决方案是创建 api 应用程序,它是 yii2 基本应用程序中的一个新应用程序。它共享模型和供应商目录,但有自己的配置和入口脚本 (index.php)。这是solution link了解更多信息。
编辑:
不要忘记在 api.config 文件中添加用户组件
'user' => [
'identityClass' => 'app\models\User',
'enableAutoLogin' => false,
],
我认为使用 yii2 高级应用程序结构更适合像我这样的情况。但是这个解决方案非常有效:) .
最佳。