我在用户模型中读取已记录用户的会话时遇到了困难。
从任何其他模型中检索用户数据时,它可以完美运行。
MODULE.PHP
'session' => function ($sm) {
$config = $sm->get('config');
if (isset($config['session'])) {
$session = $config['session']['config']['options']['name'];
//Various Session options
$manager = new \Zend\Session\SessionManager();
if(filter_input(INPUT_SERVER, 'APPLICATION_ENV') === 'production'){
$manager->getConfig()
->setCookieHttpOnly(true)
->setCookieSecure(false);
$manager->start();
}
return new Session($session);
}
},
BaseTable.php
public function getIdentity($property = null) {
$storage = $this->getServiceLocator()->get('session');
if (!$storage) {
return false;
}
$data = $storage->read();
if ($property && isset($data[$property])) {
return $data[$property];
}
return $data;
}
当我调用getIdentity函数,其中tb_usuario实例化时出现此错误:
致命错误:在非对象中调用成员函数get() C:\瓦帕\ WWW \ sigaAvaliacoes \模块\应用\ SRC \应用程序\模型\ BaseTable.php 第73行
对不起我的英文,谢谢!
答案 0 :(得分:0)
很抱歉,我发现问题,在Module.php中我没有实例serviceLocator:
'Usuario' => function($sm) {
$tableGateway = new TableGateway('tb_usuario', $sm->get('db_adapter_main'));
return new Model\Usuario($tableGateway);
},
现在工作:
'Usuario' => function($sm) {
$tableGateway = new TableGateway('tb_usuario', $sm->get('db_adapter_main'));
$updates = new Model\Usuario($tableGateway);
$updates->setServiceLocator($sm);
return $updates;
},
谢谢= D