Cakephp 4 Метод "session()" не существует
У меня проблема, связанная с сеансом в cakephp 4, он возвращает "сеанс не существует", та же функция хорошо работает в cakephp 3, я проверил кулинарную книгу и не нашел никаких новых изменений в сеансе.
$session = $this->request->session();
$name = $session->read('User.name');
ошибка
2020-05-19 17:45:55 Error: [BadMethodCallException] Method "session()" does not exist in xxxxxxx//vendor/cakephp/cakephp/src/Http/ServerRequest.php on line 604
Stack Trace:
- xxxxxxx//src/Controller/UsersController.php:135
- xxxxxxx//vendor/cakephp/cakephp/src/Controller/Controller.php:521
- xxxxxxx//vendor/cakephp/cakephp/src/Controller/ControllerFactory.php:79
- xxxxxxx//vendor/cakephp/cakephp/src/Http/BaseApplication.php:229
- xxxxxxx//vendor/cakephp/cakephp/src/Http/Runner.php:77
- xxxxxxx//vendor/cakephp/authentication/src/Middleware/AuthenticationMiddleware.php:124
- xxxxxxx//vendor/cakephp/cakephp/src/Http/Runner.php:73
- xxxxxxx//vendor/cakephp/cakephp/src/Http/Middleware/BodyParserMiddleware.php:159
- xxxxxxx//vendor/cakephp/cakephp/src/Http/Runner.php:73
- xxxxxxx//vendor/cakephp/cakephp/src/Http/Runner.php:77
- xxxxxxx//vendor/cakephp/cakephp/src/Http/Middleware/CsrfProtectionMiddleware.php:137
- xxxxxxx//vendor/cakephp/cakephp/src/Http/Runner.php:73
- xxxxxxx//vendor/cakephp/cakephp/src/Http/Runner.php:58
- xxxxxxx//vendor/cakephp/cakephp/src/Routing/Middleware/RoutingMiddleware.php:162
- xxxxxxx//vendor/cakephp/cakephp/src/Http/Runner.php:73
- xxxxxxx//vendor/cakephp/cakephp/src/Routing/Middleware/AssetMiddleware.php:68
- xxxxxxx//vendor/cakephp/cakephp/src/Http/Runner.php:73
- xxxxxxx//vendor/cakephp/cakephp/src/Error/Middleware/ErrorHandlerMiddleware.php:119
- xxxxxxx//vendor/cakephp/cakephp/src/Http/Runner.php:73
- xxxxxxx//vendor/cakephp/cakephp/src/Http/Runner.php:58
- xxxxxxx//vendor/cakephp/cakephp/src/Http/Server.php:90
- xxxxxxx//webroot/index.php:40
1 ответ
В Торт 3 мы используем
$this-> запрос-> сеанс ();
В Cake 4 Cake меняет метод вызова, и теперь он
$ это-> запрос->getSession()
Подробности: https://book.cakephp.org/4/en/development/sessions.html