我知道也有类似的问题,但是那里提供的答案对我不起作用。
我的Laravel应用程序中具有以下URL:
http://example.com/anatomy/18917/why-cant-i-bend-my-back
现在,“解剖”部分已重命名为“ physio”,并且相同内容的新URL是这样:
http://example.com/physio/18917/why-cant-i-bend-my-back
这是格式为physio/{id}/{slug}
现在,我想提供向后兼容性(对于所有可能已将旧的URL格式添加为书签的用户)。
因此,我尝试将anatomy/18917/why-cant-i-bend-my-back
重定向到physio/18917/why-cant-i-bend-my-back
。我已经尝试了以下方法,但是它不起作用:
$router->get('anatomy/{id}/{slug}', function() {
return redirect()->to('physio', ['id' => $id, 'slug' => $slug]);
});
我得到的错误是undefined variable: id
。如果执行以下操作,它将正确地重定向到主页,但是我宁愿使用给定的参数来重定向到实际文章。
$router->get('anatomy/{id}/{slug}', function() {
return redirect()->to('/');
});
答案 0 :(得分:3)
更改
$router->get('anatomy/{id}/{slug}', function() {
return redirect()->to('physio', ['id' => $id, 'slug' => $slug]);
});
到
$router->get('anatomy/{id}/{slug}', function($id,$slug) {
return redirect()->to('physio', ['id' => $id, 'slug' => $slug]);
});
您需要在函数中传递$id
和$slug
答案 1 :(得分:0)
控制器内部
function($id,$slug) {
return redirect()->to('physio', ['id' => $id, 'slug' => $slug]);
};