2014-11-16 13:42:49 8175次浏览 3条回答 0 悬赏 0 金钱

提示Class 'app\controllers\stdClass' not found,求解。。php菜鸟

  • 回答于 2014-11-16 14:01 举报

    这个问题直接影响的原因应该是命名空间不对
    实例化的这个对象在app\controllers 这个空间下 根本找不到

    2 条回复
    回复于 2014-11-16 14:18 回复

    如何才能用stdClass啊??我主要的问题是 model->findall() 查出来的$models 用json_encode 输出只有{},里面的内容没有了。但是确实这个对象里面有数据,都能输出出来,所以我想new stdClass遍历这个$model赋值到stdClass对象。然后再json_encode

    回复于 2014-11-16 17:40 回复

    @哈哈哈电饭锅: 你想从model 查询出来的数据封装到stdClass 类中,然后在json格式化 对把
    那你的stdClass 这个类在哪里?? 是模型类么?

  • 回答于 2014-11-18 09:18 举报

    FindAll出来的model不对

  • 回答于 2014-11-27 18:11 举报

    悲催呀,刚写好的,预览状态下,一个回退键,就没有了 。。。

    重写一遍了

    ActiveRecord 的 $attributes 属性是私有的,是不能被 json_encode 编码的,所以 encode 后是 {} 不奇怪

    你使用了namespace,所以如果你 $obj = new stdClass,找的是你 namespace 下的 stdClass 类,这个应该肯定是不存在的,应该用 $obj = new \stdClass 就ok了,顺便提一句,如果用到了 Exception, 也是要特别注意的 try { ... } catch (\Exception $e) {...} ,这个样子才能像预料中的那样工作

    yii\helpers\Json 是可以 encode models 数据的,对这些数据有特殊的处理,可以参看源代码

    \yii\helpers\Json::encode(Model::findAll());
    

    这样子就ok了

    觉得很赞
您需要登录后才可以回答。登录 | 立即注册
哈哈哈电饭锅
实习生

哈哈哈电饭锅

注册时间:2014-11-16
最后登录:2014-11-16
在线时长:1小时18分
  • 粉丝0
  • 金钱5
  • 威望0
  • 积分15

热门问题