我将控制器中的用户对象传递给视图,然后调用该控制器上的方法。我在视图中的对象上做了一个print_r,所以我知道这是正确的对象和正确的值。 current_user变量是用户类的一个实例。Zend Framework:从控制器传递值时查看不完整的对象错误
以下是布局中出现错误的那一行。
<?php echo $this->current_user->get_avatar_url(); ?>
这里是在用户类中的方法是致电
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()的脚本试图执行一个方法或访问不完整对象的属性。请确保在尝试操作的对象的类定义“用户”已加载之前 unserialize()被调用或提供__autoload()函数以加载/home/breathel/public_html/application中的类定义在线/views/layouts/layout.phtml
我包括完整的控制基地,其中这叫做情况下,它的确与众不同
<?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();
}
}
该错误谈论序列化,但我没有看到该行。 –
那是因为我没有序列化这个对象,这肯定让我难住了。 – Jhorra
我发现错误是在布局中,而不是在视图中...你能检查这个吗? –