2014-10-28 16:34:34 23797次浏览 4条回答 0 悬赏 1 金钱

use frontend\models\user;use app\models\user;
有区别吗?

为什么在xxxController中用use frontend\models\user
调用model时:$model = User::findOne(Yii::$app->user->id);就报错:

Unknown Class – yii\base\UnknownClassException  
Unable to find 'frontend\models\User' in file: C:\wampsever\www\YIIadvanced/frontend/models/User.php. Namespace missing?

use app\models\user;就不会;

补充于 2014-10-29 08:43

是不是和定义的namespace有关?

最佳答案

  • Alanobiety 发布于 2014-10-31 17:52 举报

    请阅读命名空间的内容
    个人理解:namespace其实指明了当前文件所在的文件夹路径,当我们用use来引用相关的类的时候可以找到。
    就类似于包管理机制,package
    形式差不多的,用来管理类,
    这两句有明显的差别,
    因为两句导入了不同的类,一个是
    app下的model里面的,一个是fronted下的
    所以差别很大
    其实你可以看看这个两个User文件的源码,你测试下就知道了

  • 回答于 2014-10-30 03:25 举报

    是不是user 大小写问题

  • 回答于 2014-10-31 14:01 举报

    这得看你定义的 namespace

    像基本的模板里面用的 namespace 都是 app\models\User
    而那个高级模板里面的是 frontend\models\User

  • 回答于 2015-08-28 16:32 举报

    应该是你配置的nginx的路径不是指向frontend吧

您需要登录后才可以回答。登录 | 立即注册
nswindlights
总监

nswindlights 江苏太仓

注册时间:2014-09-18
最后登录:2020-03-30
在线时长:74小时58分
  • 粉丝5
  • 金钱986
  • 威望80
  • 积分2526

热门问题