Как настроить маршрут извлечения данных из одной таблицы в laravel - PullRequest
1 голос
/ 02 ноября 2019

У меня есть метод показа, который показывает животных с определенной фермы. Я хотел добавить еще один вариант элемента той же фермы, но с определенным условием, например, возраст <= 2. </p>

Это то, что я пробовал до сих пор

маршрутов (вакцина1)

Route::get('/clinic/{animal}/create', 'ClinicController@create');
Route::post('/clinic/{animal}', 'ClinicController@store');
Route::get('/clinic/{animal}/{clinic}/edit', 'ClinicController@edit');
Route::get('/clinic/{farm}', 'ClinicController@show');
Route::get('/clinic/{farm}', 'ClinicController@vaccine1')->name('vaccine1');

Контроллер

public function show($id) {
    $farms = User::with(['animals'])->findOrFail($id);
    return view('clinic.show',compact('farms'));
}

public function vaccine1($id) {
    $farms = User::with(['animals'])->findOrFail($id);
    return view('clinic.show',compact('farms'));
}

и ссылка для просмотра из шоу

<li class="nav-item dropdown pr-3">
    <a href="#" class="nav-link dropdown-toggle" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>
        Vaccines <span class="caret"></span>
    </a>

    <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
        <a class="dropdown-item" href="{{ route('vaccine1') }}">
            0 - 2 (months)
        </a>
    </div>

Я получаю эту ошибку

Отсутствует обязательнопараметры для [Путь: вакцина1] [URI: клиника / {ферма}]. (Просмотр: /Users/macair13/MeatracProject/resources/views/clinic/show.blade.php)

который я не понимаю, почему

Ответы [ 3 ]

1 голос
/ 02 ноября 2019

Вы забыли добавить параметр farm при попытке отобразить маршрут vaccine1

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

<a class="dropdown-item" href="{{ route('vaccine1', ['farm' => $farm->id]) }}">
        0 - 2 (months)
</a>
1 голос
/ 02 ноября 2019

Что вам нужно сделать, это просто передать объект $farm, и я автоматически сгенерирую URL-адрес этого маршрута, чтобы он стал таким

 http://example.com/clinic/{farm}
to
 http://example.com/clinic/1  <!-- if the Id was 1
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
        <a class="dropdown-item" href="{{ route('vaccine1', $farm->id)}}">
            0 - 2 (months)
        </a>
</div>

или таким

<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
        <a class="dropdown-item" href="{{ route('vaccine1', ['farm' => $farm->id ])">
            0 - 2 (months)
        </a>
</div>

Подробнее см. Документы для URL-адресов для именованных маршрутов

1 голос
/ 02 ноября 2019

Вы пытаетесь сгенерировать URL для маршрута с обязательным параметром '/clinic/{farm}'. При вызове помощника route вам нужно будет передать значение для этого параметра или установить параметр по умолчанию в UrlGenerator.

route('vaccine1', ['farm' => ...])

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