Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel路由,带参数重定向_Laravel_Routing_Routes - Fatal编程技术网

Laravel路由,带参数重定向

Laravel路由,带参数重定向,laravel,routing,routes,Laravel,Routing,Routes,我知道也有类似的问题,但提供的答案对我来说并不适用 我的Laravel应用程序中有以下URL: 现在,“解剖”部分已重命名为“生理学”,相同内容的新URL如下: 这是一个GET路由,格式为physio/{id}/{slug} 现在,我想提供向后兼容性(对于任何可能以旧URL格式为文章添加书签的用户) 因此,我试图重定向,例如,analogy/18917/why-cant-I-bend-my-back到physical/18917/why-cant-I-bend-my-back。我尝试了以下方

我知道也有类似的问题,但提供的答案对我来说并不适用

我的Laravel应用程序中有以下URL:

现在,“解剖”部分已重命名为“生理学”,相同内容的新URL如下:

这是一个GET路由,格式为
physio/{id}/{slug}

现在,我想提供向后兼容性(对于任何可能以旧URL格式为文章添加书签的用户)

因此,我试图重定向,例如,
analogy/18917/why-cant-I-bend-my-back
physical/18917/why-cant-I-bend-my-back
。我尝试了以下方法,但无效:

$router->get('anatomy/{id}/{slug}', function() {
    return redirect()->to('physio', ['id' => $id, 'slug' => $slug]);
});
我得到的错误是
未定义变量:id
。如果我做了以下操作,它会正确地重定向到主页,但我宁愿重定向到带有给定参数的实际文章

$router->get('anatomy/{id}/{slug}', function() {
    return redirect()->to('/');
});
改变

$router->get('anatomy/{id}/{slug}', function() {
    return redirect()->to('physio', ['id' => $id, 'slug' => $slug]);
});

您需要在函数中传递
$id
$slug

改变

$router->get('anatomy/{id}/{slug}', function() {
    return redirect()->to('physio', ['id' => $id, 'slug' => $slug]);
});

您需要在函数中传递
$id
$slug


控制器内部

function($id,$slug) {
    return redirect()->to('physio', ['id' => $id, 'slug' => $slug]);
};

控制器内部

function($id,$slug) {
    return redirect()->to('physio', ['id' => $id, 'slug' => $slug]);
};

当我这样做时,我得到的HTTP状态码“1”无效。设置
physio/id/slug
路由的路由名称。你的新路线。然后使用
return redirect()->route('routename',['id'=>$id,['slug'=>$slug])
我认为如果@jovan可以为旧路由命名,那么您可以使用
redirect()->route(…)
否则您可以通过自己构建url来节省时间。也就是说,
redirect()->to(“pysio/$id/$slug”)
//注意双引号@oluwatobisamuelomisakin当我这样做时,我得到的HTTP状态码“1”无效。你的新路线。然后使用
return redirect()->route('routename',['id'=>$id,['slug'=>$slug])
我认为如果@jovan可以为旧路由命名,那么您可以使用
redirect()->route(…)
否则您可以通过自己构建url来节省时间。也就是说,
redirect()->到(“pysio/$id/$slug”)
//注意双引号@OluwatobiSamuelOmisakin