Маршрут на Laravel неверен

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

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

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 - это ID), а номер 4 - это переменная $id.

Но ури такой: relatorios/profissionais/id?id=4

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

@Rafee - это вид public/views/relatorios/profissionais.blade.php

Italo Rodrigo 12.09.2018 04:28

вам нужно передать правильные аргументы в форме action = "{{route ('relatorios.profissionais', 4)}}"

Rafee 12.09.2018 04:29

Я вижу, что есть элемент выбора, вы либо меняете URL-адрес действия при изменении, либо не передаете этот элемент выбора

Rafee 12.09.2018 04:30

@Rafee число 4 - это пример числа, сгенерированного моей формой при выборе ввода.

Italo Rodrigo 12.09.2018 04:39
pastebin.com/N4r8Ecj4 Я считаю, что вам нужно это для достижения того, что вы делаете.
Rafee 12.09.2018 04:45
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
1
5
63
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете сделать это так:

Route::get('/relatorios/profissionais/{id?}', 'RelatorioController@profissionais')->name('relatorios.profissionais');
Ответ принят как подходящий

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

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

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

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


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

    $profissionais = $id;

Число 4 - это только пример, мне нравится получать значение из формы

Italo Rodrigo 12.09.2018 04:55

Хорошо, либо используйте $request->id вместо параметра маршрута, либо используйте прослушиватель javascript для настройки URL-адреса при изменениях.

Devon 12.09.2018 04:56

а форма <form method = "GET" action = "{{route('relatorios.profissionais', 'id')}}"> правильная?

Italo Rodrigo 12.09.2018 04:58

Если вы хотите заменить id слушателем javascript, в противном случае нет. Обновлено: На самом деле нет, я бы даже этого не сделал, потому что это будет работать только для первого события изменения.

Devon 12.09.2018 04:58

Понимать. Спасибо

Italo Rodrigo 12.09.2018 04:59

Другие вопросы по теме