我想在CakePHP中,以/my-old-url/$slug
重定向到/news/$slug
用下面的代碼:(?可能是一個bug)CakePHP的:通過路由器::重定向重定向不保留PARAMS
Router::redirect(
'/my-old-url/*',
array('controller' => 'news', 'action' => 'view'),
array('persist' => true)
);
使用此代碼拋出錯誤
警告(2):提供的foreach()[CORE /蛋糕/路由/路由/ CakeRoute.php,線381]參數無效
public function persistParams($url, $params) { foreach ($this->options['persist'] as $persistKey) {
即使嘗試下面的代碼不起作用:
Router::redirect(
'/my-old-url/:slug',
array('controller' => 'news', 'action' => 'view'),
array('persist' => array('slug'))
);
此代碼重定向我對/news/view
不帶任何參數。
我用下面的代碼來連接新聞網址:
Router::connect('/news',
array('controller' => 'news', 'action' => 'index')
);
Router::connect('/news/:slug',
array('controller' => 'news', 'action' => 'view'),
array('pass' => array('slug'))
);
怎麼辦?
將'persist'更改爲'pass' – kicaj
@kicaj將第一個代碼或第二個代碼中的'persist'更改爲'pass'確實有幫助。但是現在,這兩種代碼變體都不帶任何參數地重定向到'/ news/view'。 – Jan
你有什麼cakephp版本? – user221931