我没有运气试图将AuthError上的Flash元素从默认更改为错误?
我只是想看看我是否可以改变它,但是现在我把它推到了墙上,因为我似乎无法改变它?
这就是我在AppController中加载Auth的方法,
$this->loadComponent('Auth', [
'authError' => 'Did you really think you are allowed to see that? -2',
'authenticate' => [
'Form' => [
'fields' => ['username' => 'email', 'password' => 'password']
]
],
'loginAction' => [
'controller' => 'Users',
'action' => 'Login'
],
'loginRedirect' => [
'controller' => 'Pages',
'action' => 'LoginPage'
],
'logoutRedirect' => [
'controller' => 'Pages',
'action' => 'HomePage'
]
]);
因此,当我转到一个不允许的页面时,它会显示authError消息,但使用Element/Flash/default.ctp
中的任何类/ id我想要将其更改为仅使用error.cpt
< / p>
我已经调试了Auth组件,有一个'flash'设置,试过设置,但它不起作用?
那么如何更改authError以使用其他Flash布局?
谢谢,
答案 0 :(得分:4)
正如您所知,auth消息默认使用default.ctp
元素,并且可以在直接渲染时配置flash元素。要全局影响,可以改为配置组件。
如果您只想更改类名,则可以使用class
配置选项flash
设置中的params
参数:
$this->loadComponent('Auth', [
// ...
'flash' => [
'params' => [
'class' => 'some-custom-class'
]
]
]);
如果您想使用其他元素,例如error.ctp
,请使用element
设置指定其名称
'flash' => [
'element' => 'error'
]
另请参阅 Cookbook > Controllers > Components > Authentication > Configuration Options
答案 1 :(得分:0)
我想我有一个解决方案。
当我打印$this->Flash->render('auth');
此时我需要将其更改为$this->Flash->render('auth',['element' => 'error']);
但如果有人知道更好的方法,请告诉我
答案 2 :(得分:0)
在Cakephp 3中,您可以为Flash错误定义元素名称-
$this->loadComponent('Auth', array(
'authorize'=> 'Controller',
'flash' => array(
'element' => 'error'
),
'authError' => 'Your session expired, please login again',
'logoutRedirect' => array(
'controller' => 'Users',
'action' => 'login',
'prefix' => false
)
));
和error.ctp,位于-\ src \ Template \ Element \ Flash \ error.ctp