在我的应用程序中,我根据存储在cookie中的用户偏好(或者如果有的话)或使用他的浏览器设置来定义(除其他外)区域设置。所有这些都是在AppController :: beforeFilter()中完成的。
问题:对于缺少路由异常引发的404错误,请求不会到达控制器。所以我的error400.ctp模板没有使用正确的语言环境呈现。
因此,在AppController :: beforeFilter中定义语言环境可能不是最佳实践。知道我应该在哪里做这个吗?
答案 0 :(得分:2)
我会将逻辑放在DispatcherFilter
:
http://book.cakephp.org/3.0/en/development/dispatch-filters.html
你可以看一下这个灵感:
https://github.com/cakephp/cakephp/blob/master/src/Routing/Filter/LocaleSelectorFilter.php