如何修复yii2中缺少的名称空间

时间:2019-01-22 08:13:01

标签: php yii2 namespaces

我不知道发生了什么,我之前设置了mongodb。然后刷新页面,突然出现错误通知 asking for namespace missing

  

无法在文件F:\ aplikasi \ laragon \ www \ yiiad \ application / modules / home / models / User.php中找到“ application \ modules \ home \ models \ User”。缺少命名空间?

我已经检查过我之前编写的代码,但仍然不知道我的错误所在

这是我的模型用户结构 \ application \ modules \ home \ models \ user

此模型\用户代码

<?php 
namespace home\models; 

use Yii;
use yii\behaviors\TimestampBehavior;
use yii\db\ActiveRecord;
use yii\db\Query;
use yii\web\IdentityInterface;

class User extends ActiveRecord implements IdentityInterface
{}
?>

我的别名

<?php
Yii::setAlias('@modules', dirname(dirname(__DIR__)) . '/application/modules');

我的路径设置

'basePath' => '@modules/home',
'modules' => [
    'admin' => [
      'class' => 'admin\Module'
    ],
    'home' => [
      'class' => 'home\Module'
    ],
  ],

我的模块

<?php
namespace home;
class Module extends \yii\base\Module{

public function init()
{
 parent::init();
    if (\Yii::$app instanceof \yii\console\Application) {
        $this->controllerNamespace = 'home\controllers';
    }
  }
}

1 个答案:

答案 0 :(得分:0)

命名空间home不正确。您应该在模块的命名空间中使用modules别名

namespace modules\home;

class Module extends \yii\base\Module
{
}

并在配置中

'modules' => [
    'home' => [
      'class' => 'modules\home\Module'
    ],
],

或者您必须为home目录设置别名

'aliases' => [
    '@home' => 'path to home directory'
],
'modules' => [
    'home' => [
      'class' => 'home\Module'
    ],
  ],