Я пытаюсь решить проблему cakePHP.Версия cakePHP - 2.10.10, и я не хочу обновлять проект, потому что я не хочу перерабатывать весь код.Я не создаю приложение, и я новичок в cakePHP, поэтому я только пытаюсь исправить ошибку.
Я также добавляю нового пользователя, чтобы убедиться, что пароль правильный.Когда я пытаюсь войти, я получаю это сообщение об ошибке.
Вызов функции-члена error () в null
Call to a member function error() on null
Error: An Internal Error Has Occurred.
Stack Trace
[internal function] → UsersController->manager_login()
CORE/Cake/Controller/Controller.php line 491 → ReflectionMethod->invokeArgs(UsersController, array)
CORE/Cake/Routing/Dispatcher.php line 193 → Controller->invokeAction(CakeRequest)
CORE/Cake/Routing/Dispatcher.php line 167 → Dispatcher->_invoke(UsersController, CakeRequest)
APP/webroot/index.php line 117 → Dispatcher->dispatch(CakeRequest, CakeResponse)
AppController.php
<?php
App::uses('Controller', 'Controller');
class AppController extends Controller {
public $components = array(
//'Flash',
'Session',
'Auth' => array(
'authorize' => array('Controller'),
'authenticate' => array(
'Form' => array(
'passwordHasher' => array(
'className' => 'Simple',
'hashType' => 'sha256'
)
)
),
'loginRedirect' => array('controller' => 'projekte', 'action'=> 'index', 'manager' => true),
'logoutRedirect' => array('controller' => 'users', 'action' => 'logout')
));
function beforeFilter() {
if (isset($this->params['prefix']) && $this->params['prefix'] == 'manager') {
$this->layout = 'admin';
}
}
function isAuthorized($user) {
return true;
}
}
UserController.php
<?php
class UsersController extends AppController {
var $name = 'Users';
function beforeFilter() {
parent::beforeFilter();
$this->layout = 'admin';
$this->Auth->allow('login', 'logout', 'add');
}
function index() {
$this->redirect(array('controller' => 'users', 'action' => 'login'));
}
function login() {
$this->redirect(array('controller' => 'users', 'action' => 'login', 'manager' => true));
}
function manager_login() {
if ($this->request->is('post')) {
if ($this->Auth->login()) {
return $this->redirect($this->Auth->redirectUrl());
} else {
$this->Flash->error('Ungültige Zugangsdaten');
}
}
}
function logout() {
$this->Auth->logout();
$this->redirect(array('controller'=>'pages', 'action'=>'display', 'home', 'manager'=>false));
}
public function add() {
if ($this->request->is('post')) {
$this->User->create();
if ($this->User->save($this->request->data)) {
$this->Flash->success(__('The user has been saved'));
return $this->redirect(array('action' => 'index'));
}
$this->Flash->error(
__('The user could not be saved. Please, try again.')
);
}
}
}
?>