首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Zend :将值从控制器传递到视图时不完整的对象错误

Zend :将值从控制器传递到视图时不完整的对象错误
EN

Stack Overflow用户
提问于 2011-11-01 23:16:40
回答 1查看 788关注 0票数 0

我将用户对象从控制器传递到视图,然后在该控制器上调用一个方法。我已经对视图中的对象做了一个print_r,所以我知道它是正确的对象,具有正确的值。current_user变量是user类的一个实例。

下面是给出错误的布局中的行。

代码语言:javascript
运行
复制
<?php echo $this->current_user->get_avatar_url(); ?>

下面是它正在调用的user类中的方法

代码语言:javascript
运行
复制
public function get_avatar_url()
{
    return !empty($this->avatar) ? $this->avatar : $this->fb_userid != '' ? "http://graph.facebook.com/".$this->fb_userid."/picture" : "/public/images/pukie.jpg";
}

这就是我所犯的错误

致命错误:main()脚本试图执行方法或访问不完整对象的属性。请确保您试图操作的对象的类定义"User“是在调用un序列化()之前加载的,或者在/home/breathel/public_html/application/views/layouts/layout.phtml中的48中提供一个加载类定义的__autoload()函数之前。

我包括一个完整的控制器库,这是为了防止发生变化而调用它

代码语言:javascript
运行
复制
<?php
Zend_Loader::loadClass('Zend_Controller_Action');
Zend_Loader::loadClass('User');

class BaseController extends Zend_Controller_Action
{
    protected $auth;
    protected $current_user;
    protected $db;

    protected function initialize_values()
    {
        $auth = Zend_Auth::getInstance();
        if($auth->hasIdentity())
        {
            $this->current_user = $auth->getIdentity();
            $this->view->current_user = $this->current_user;
        }

        $this->db = Zend_Registry::get('dbAdapter');

        $this->view->controller_name = $this->_request->getControllerName();
        $this->view->view_name = $this->_request->getActionName();
    }
}
EN

回答 1

Stack Overflow用户

发布于 2011-11-02 01:18:03

Zend的授权模块使用会话来保持跨页面加载的身份,并且可能正在序列化隐藏的用户模型(特别是当您只是分配Zend_Auth_Adapter调用的结果时)。

尝试在第一次调用getIdentity()之前包含用户类,看看它是否修复了它(即使您确信自己没有序列化它)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7974084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档