【问题标题】:how to fix namespace missing in yii2如何修复yii2中缺少的命名空间
【发布时间】:2019-06-15 15:54:33
【问题描述】:

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

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

之前做的代码我已经查过了,还是不知道哪里出错了

这是我的模型用户结构 \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';
    }
  }
}

【问题讨论】:

    标签: php yii2 namespaces


    【解决方案1】:

    命名空间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'
        ],
      ],
    

    【讨论】:

      猜你喜欢
      • 2017-08-19
      • 2018-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-22
      相关资源
      最近更新 更多