Как передать параметр запроса, используя имя маршрута в laravel? - PullRequest
0 голосов
/ 08 января 2020

Я знаю это

{{route('editApplication', ['id' => $application->id])}} == /application/edit/{id}

Но мне нужно

?? == /application/edit?appId=id

Кто-нибудь, пожалуйста, замените "??" с твоим ответом, который мне поможет.

Ответы [ 3 ]

3 голосов
/ 08 января 2020

Зависит от того, как выглядит ваш маршрут:

Если ваш маршрут:

Route::get('/application/edit/{id}', 'SomeController')->name('editApplication');

при использовании

route('editApplication', ['id' => 5])

URL будет выглядеть так:

/application/edit/5

Однако все остальные параметры (которых нет в параметрах маршрута) будут использоваться в качестве строки запроса, например:

route('editApplication', ['id' => 5, 'first' => 'foo', 'second' => 'bar'])

сгенерирует URL следующим образом:

/application/edit/5?first=foo&second=bar

Если вы хотите получить URL-адрес, подобный этому

/application/edit?appId=id

, вы должны определить маршрут следующим образом:

Route::get('/application/edit/', 'SomeController')->name('editApplication');

, а затем при использовании

route('editApplication', ['appId' => 5])

вы получите

/application/edit?appId=5

url.

1 голос
/ 08 января 2020

route метод принимает любой набор переменных и помещает их в виде строки запроса, если только имя переменной не совпадает с определенной сигнатурой маршрута.

Таким образом, для вашего случая вы можете сделать что-то следующее:

route('editApplication', ['appId' => <your id here>])

В массиве можно указать любое количество переменных.

0 голосов
/ 08 января 2020

Вам нужно изменить маршрут "editApplication" без параметра. Если вам все еще нужен параметр, просто добавьте следующую строку в ваш контроллер и просто перехватите данные с помощью;

$appId = $request->input('appId');
...