我正在阅读这本书,我在第3章中,这段代码返回了以下错误:致命错误:在第70行的/var/www/CommunicationApp/module/Users/src/Users/Controller/RegisterController.php中找不到类"Users''Model''User"
我想知道代码出了什么问题,或者如果不是代码,那是什么?
<?php
namespace Users'Controller;
use Zend'Mvc'Controller'AbstractActionController;
use Zend'View'Model'ViewModel;
use Users'Form'RegisterForm;
use Users'Form'RegisterFilter;
use Users'Model'User;
use Users'Model'UserTable;
class RegisterController extends AbstractActionController
{
public function indexAction()
{
$form = new RegisterForm();
$viewModel = new ViewModel(array('form' => $form));
return $viewModel;
}
public function processAction()
{
if (!$this->request->isPost()) {
return $this->redirect()->toRoute(NULL , array(
'controller' => 'register',
'action' => 'index'
));
}
$post = $this->request->getPost();
$form = new RegisterForm();
$inputFilter = new RegisterFilter();
$form->setInputFilter($inputFilter);
$form->setData($post);
if (!$form->isValid()) {
$model = new ViewModel(array(
'error' => true,
'form' => $form,
));
$model->setTemplate('users/register/index');
return $model;
}
// Create user
$this->createUser($form->getData());
return $this->redirect()->toRoute(NULL , array(
'controller' => 'register',
'action' => 'confirm'
));
}
public function confirmAction()
{
$viewModel = new ViewModel();
return $viewModel;
}
protected function createUser(array $data)
{
$sm = $this->getServiceLocator();
$dbAdapter = $sm->get('Zend'Db'Adapter'Adapter');
$resultSetPrototype = new 'Zend'Db'ResultSet'ResultSet();
$resultSetPrototype->setArrayObjectPrototype (new 'Users'Model'User); //line 70
$tableGateway = new 'Zend'Db'TableGateway'TableGateway('user' /* table name */, $dbAdapter, null, $resultSetPrototype);
$user = new User();
$user->exchangeArray($data);
$userTable = new UserTable($tableGateway);
$userTable->saveUser($user);
return true;
}
}
如果模型文件在以下目录中,则进行正确的自动加载检查/module/Users/src/Users/Model/User.php
if-is-zend无法自动加载您的模型文件,如果(正如您所指出的,模型文件中的类名和命名空间是正确的)文件没有放在那里,就会触发错误。