Маршрут на Ларавеле неправильный - PullRequest
0 голосов
/ 12 сентября 2018

Я не могу сделать этот маршрут работает ...

Мой контроллер:

public function profissionais(Request $request, $id){
    $profissionais = Vinculo::where('unidade_id', '=', $id)->get();
    $profissionais = $id;
    return view('relatorios.profissionais', compact('profissionais'));
}

Моя форма:

<form method="GET" action="{{route('relatorios.profissionais', 'id')}}">
    <select class="js-example-basic-single" name="id" required>
        @foreach($unidades as $unidade)
            <option value="{{$unidade->id}}">{{$unidade->descricao}}</option>
        @endforeach
    </select>
    <span class="input-group-btn">
        <button class="btn btn-primary" type="submit">Listar</button>
    </span>
</form>

web.php:

Route::get('/relatorios/profissionais/{id}', 'RelatorioController@profissionais')->name('relatorios.profissionais');

Мне нравится мой маршрут, подобный следующему: /relatorios/profissionais/4 (4 - это идентификатор), а число 4 будет переменной $id.

Но URI выглядит так: relatorios/profissionais/id?id=4

Любая помощь?

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Вторым параметром помощника по маршруту должно быть значение параметра, а не ключа.

{{route('relatorios.profissionais', 4)}}

Теперь, поскольку вы устанавливаете это значение из формы, вам нужно либо использоватьзапрашивать ввод вместо параметра маршрута или использовать javascript для изменения действия формы, используя прослушиватель события change вашего элемента select.

Причина, по которой вы /id, заключается в том, что 'id' является вторым аргументом,Причина, по которой у вас есть ?id=4, заключается в том, что это значение формы, а не параметр маршрута.


Вы также перезаписываете $profissionais сразу после получения коллекции

    $profissionais = $id;
0 голосов
/ 12 сентября 2018

Вы можете сделать это следующим образом:

Route::get('/relatorios/profissionais/{id?}', 'RelatorioController@profissionais')->name('relatorios.profissionais');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...