2016-05-30 10:51:52 4067次浏览 3条回答 0 悬赏 10 金钱

因为前台有些操作需要用到model类,和后台操作一致,不想在前台再创建一次model,
有没有什么方法是直接可以调用后台model的。。。。
论坛上有回答说是use (use backend\models\article\Article)?这样不对的。。请解。谢谢。

最佳答案

  • koko 发布于 2016-05-30 11:15 举报

    不对是指什么意思?

    5 条回复
    回复于 2016-05-30 11:21 回复

    就是报错呀。Unable to find 'backend\models\article\Article' in file: D:\xampp\htdocs\yii2test/backend/models/article/Article.php. Namespace missing? 报错路径是对的。

    回复于 2016-05-30 11:29 回复

    你拿这段use语句到后台页面用就不报错了?

    回复于 2016-05-30 11:48 回复

    use app\models\article\Article; 我用这个编辑器都可以找到。但是页面报错。Class 'app\models\article\Article' not found

    回复于 2016-05-30 12:16 回复

    调用其他model就是use,至于报错,那不是use的问题.

    回复于 2016-05-30 13:49 回复

    你说的对。。app指当前模块 找不到正常。backend 本来就是不是命名。只有修改下类的 命名空间 才算勉强解决问题。。。

  • 回答于 2016-05-30 13:22 举报

    你的Article类的namespace到底是“backend\models\article”还是“app\models\article”?你可能没有完全理解namespace的作用。。

    5 条回复
    回复于 2016-05-30 13:37 回复

    如果你用过高级模板你就不会这样说。。在用app不成功的时候, 我在做那方面调试。类的namespace 是 app\models\article;f二种调用 backend 是命名空间失踪。app却是 not found

    回复于 2016-05-30 13:40 回复

    在前台调用app 估计指向了 frontend 所以找不到了。只能改类的命名空间。namespace backend\models\article;这样可以实在。

    回复于 2016-05-30 13:57 回复

    我也有和你这个类似的场景。frontend中User模型的命名空间是namespace frontend\models,在backend中通过use frontend\models\User来调用这个模型,很顺利,没有发现你这种错误。或者你可以把代码贴出来看一下。。

    回复于 2016-05-30 14:38 回复

    就是这样调用的,如果还是不会应该自行debug了。

    回复于 2016-05-30 16:24 回复

    嗯 是的。后台生成的model 命名空间是 app\models;所以在前台调用 app\models 的时候会出错。

    觉得很赞
  • 回答于 2017-08-24 10:26 举报

    楼主解决了吗?? 我现在也是跟你一样的问题

    Unable to find 'backend\models\Category' in file: D:\phpStudy\WWW\yii2/backend/models/Category.php. Namespace missing?

    1 条回复
    回复于 2017-08-24 16:21 回复

    你看下命名空间。

您需要登录后才可以回答。登录 | 立即注册
最爱红烧肉
副总裁

最爱红烧肉

注册时间:2014-11-07
最后登录:2017-10-27
在线时长:69小时2分
  • 粉丝11
  • 金钱4740
  • 威望30
  • 积分5730

热门问题