маршруты laravel с переменной - PullRequest
0 голосов
/ 28 августа 2018

Здравствуйте, это мой контроллер:

public function getValues(Request $request){
    $typ=$request->get('typ');
    $stellentyp=$request->get('stellentyp');
    $bereich=$request->get('bereich');
    $view = 'user.'.$stellentyp;
    return view($view,['typ' => $typ, 'stellentyp', $stellentyp, 'bereich', $bereich]);
}

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

Но у меня проблема с моими маршрутами, они не знают переменную "stellentyp". Как я могу связать свой контроллер с моими маршрутами?

Я пробовал это

Route::post('user/{$stellentyp}', 'StartController@getValues')->name('user.{$stellentyp}');

но это не работает :(. Ошибка:

Отсутствуют обязательные параметры для [Маршрут: пользователь] [URI: Пользователь / {$ stellentyp}]. (Посмотреть: C: \ XAMPP \ HTDOCS \ j4ylara \ ресурсы \ вид \ пользователь \ start.blade.php)

Ответы [ 5 ]

0 голосов
/ 28 августа 2018

Маршрут: -

Route::post('user/{stellentyp}', 'StartController@getValues');

Контроллер: -

public function getValues(Request $request,$stellentyp=''){
 $typ=$request->get('typ');
 $stellentyp=$request->get('stellentyp');
 $bereich=$request->get('bereich');
 $view = 'user.'.$stellentyp;
 return view($view,['typ' => $typ, 'stellentyp', $stellentyp, 'bereich', $bereich]);
}

Используйте этот код, чтобы получить ожидаемый ответ.

0 голосов
/ 28 августа 2018

я понял: D

<form action="{{ action('StartController@getValues') }}" method="post" id="postData">
{{ csrf_field() }}
<select name="stellentyp">
    <option value="praktika">Praktika</option>
    <option value="fwd">Freiwilligendienste</option>
    <option value="jobs">Ferien- und/oder Nebenjobs</option>
</select>
<button type="submit">Jetzt finden</button>

это мой клинок.php

и мой контроллер такой же, и мои маршруты выглядят так

Route::resource('user/start', 'StartController');
Route::post('user/angebote', 'StartController@getValues');
0 голосов
/ 28 августа 2018

в маршрутах laravel вам не нужен знак $ для переменной , уберите знак $ и снова протестируйте свой маршрут, он должен работать ...

Route::post('user/{stellentyp}', 'StartController@getValues')->name('user.stellentyp');

и добавьте $ stellentype к вашему входу метода контроллера следующим образом:

public function getValues(Request $request,$stellentype)
0 голосов
/ 28 августа 2018

Параметр маршрута полностью отличается от параметров POST.

когда вы отправляете параметр post, он должен быть в вашей форме в качестве поля ввода или выбора и т. Д., Затем вы можете перехватить их в контроллере с помощью метода get() из $ request (экземпляр класса Request)

public function getValues(Request $request){
    $request->get("post")
}

Но параметр маршрута не отправляется в форму, мы отправляем его следующим способом

в блейд-файле

<form action="{{route("user.values",$user_id)}}">

в файле маршрута

Route::post('user/{id}', 'StartController@getValues')->name('user.{$stellentyp}');

и перехватить их в контроллере в качестве параметра функции

public function getValues(Request $request,$user_id){
    dd($user_id);
}
0 голосов
/ 28 августа 2018
Route::post('user/{stellentyp}', 'StartController@getValues')->name('user.values');

Чтобы добавить переменную в маршрут, вам не нужно использовать сигнал доллара для его объявления. Проверьте код выше. Также название маршрута не должно быть назначено динамически.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...