【发布时间】:2019-12-01 15:07:03
【问题描述】:
点击导航栏时使用 cakephp 3.7 新的 url 被添加到参数的查询字符串中,这是结果
链接应该将用户重定向到
http://merchant1.com/users/gallery
但实际上在它下面的浏览器地址栏中,重定向到
http://merchant1.com/users/merchant?redirect=%2Fhqusers%2Fgallery
这是$this->request->params的Debug结果
Array (
[controller] => users
[action] => merchant
[pass] => Array
(
)
[plugin] =>
[_matchedRoute] => /:controller/:action/*
[?] => Array
(
[redirect] => /users/gallery
)
[_ext] =>
[isAjax] =>
)
下面是认证配置
$this->Auth->config([
'authenticate' => [
'Form' => [
'fields' => [
'username' => 'email',
'password' => 'password'
],
'userModel' => 'Users'
]
],
'loginAction' => [
'controller' => 'users',
'action' => 'login'
],
'loginRedirect' => [
'controller' => 'users',
'action' => 'login'
],
'logoutRedirect' => [
'controller' => 'users',
'action' => 'logout'
],
'storage' => [
'className' => 'Session',
'key' => 'Auth.users'
]
]);
这里有什么问题。
【问题讨论】:
-
我看不出您的身份验证配置与此有什么关系,有点不清楚您的问题是什么。您正在使用显示的数组生成 URL,结果链接不是您所期望的?因为您所说的在地址栏中显示的正是我希望基于该数组生成的内容。所以,我不确定你是否严重误解了它的工作原理,或者你只是没有清楚地解释这个场景。
-
@GregSchmidt 我编辑了问题,问题是当我点击导航栏时应该重定向的页面的新网址被添加到当前页面网址的查询字符串中,同样我显示了 $this- >request_param 结果。
-
仍不清楚。导航栏是您页面的一部分吗?您点击的链接中的 URL(例如来自查看源)究竟是什么?
-
@GregSchmidt 这就是我在视图页面中创建导航链接的方式 echo $this->Html->link('Gallery', array('controller' => 'users', 'action' = > '画廊'));但是当我点击这个链接时,新的 url 会作为查询字符串添加到当前页面 url merchant1.com/users/merchant?redirect=%2Fhqusers%2Fgallery
-
好的,现在更清楚了。 :-) 控制器名称应该大写,但我不知道这是否是问题所在。在初始页面的 HTML 源代码中(单击链接之前),您在图库链接中看到了什么 URL?
标签: php cakephp cakephp-3.x cakephp-3.7