我是cakePhp的新手,我一直在关注一个教程和(在教程中)我在我的数据库中创建了一个名为users的用户表(遵循命名约定)并且一切运行良好,但在我的项目中我创建了一个名为usuarios的不同名称的表,然后,我创建了模型,视图和控制器文件,我用相应的表单创建了一个名为“login.ctp”的文件,在AppController.php中我把这段代码:
class AppController extends Controller {
public $helpers = array('Html','Form','Session');
public $components = array('Session','Auth'=>array(
'controller'=>'usuarios',
'action'=>'login'
)
);
public function beforeFilter(){
$this->Auth->Allow('index');
}
}
在usuariosController.php中我添加了这段代码:
public function logout(){
$this->Auth->logout();
$this->redirect('Pensums/index');
}
public function login(){
if($this->request->is('post')){
if($this->Auth->login()){
return $this->redirect($this->Auth->redirecturl());
}
$this->Session->setFlash(_('Invalid username or password, please try again'));
}
}
但我从服务器收到此错误:
缺少控制器
错误:找不到UsersController。
错误:在文件中创建下面的UsersController类:app \ Controller \ UsersController.php
缺少什么?请帮忙。
答案 0 :(得分:3)
UsersController
是处理登录的默认控制器。这是您未登录时尝试去的地方。
根据粘贴的代码,您似乎希望将其更改为UsuariosController
如果UsuariosController
已正确创建并且具有login
方法,请尝试将$components
属性从AppController
更改为:
public $components = array(
'Session',
'Auth' => array(
'loginAction' => array(
'controller' => 'usuarios',
'action' => 'login'
)
)
);
未登录时,会将您重定向到/usuarios/login