Laravel маршрутизация, перенаправление с параметрами - PullRequest
0 голосов
/ 27 декабря 2018

Я знаю, что есть похожие вопросы, но ответы на них не работают для меня.

У меня был следующий URL в моем приложении Laravel:

http://example.com/anatomy/18917/why-cant-i-bend-my-back

Теперь раздел «Анатомия» был переименован в «Physio», и новый URL для того же контента выглядит следующим образом:

http://example.com/physio/18917/why-cant-i-bend-my-back

Это маршрут GET с форматом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('/');
});

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

внутри контроллера

function($id,$slug) {
    return redirect()->to('physio', ['id' => $id, 'slug' => $slug]);
};
0 голосов
/ 27 декабря 2018

изменить

$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 в функции

источник

...