Как передать два разных идентификатора по маршруту laravel? - PullRequest
1 голос
/ 23 февраля 2020

У меня есть простое приложение, мне нужно передать два разных идентификатора id и code_id в маршрут, вот мое решение, которое я пробовал до сих пор

view

  <a href="{{ route('settings.code', $settings->id,  $settings->code_id) }}">{{ __('Code') }}</a>

Вот конфигурация маршрута

    Route::get('settings/code/{id}/{code_id}', ['as' => 'settings.code', 'uses' => 'SettingController@code']);

Вот моя функция в контроллере

 public function code($code_id, $id)
     {   
         $settings = Setting::find($code_id, $id);


          dd($settings);


         return view('pages.settings.code', compact('settings'));

     }

Вот ошибка, которую я получаю

Missing required parameters for [Route: settings.code] [URI: settings/code/{id}/{code_id}]. (0)

Что не так с мой код?

1 Ответ

8 голосов
/ 23 февраля 2020

Сначала вы должны передать массив в качестве второго аргумента методу route():

{{ route('settings.code', ['id' => $settings->id,  'code_id' => $settings->code_id]) }}

И заметьте, что:

Параметры маршрута вводятся в обратные вызовы / контроллеры маршрута на основе в их порядке - имена аргументов обратного вызова / контроллера не имеют значения.

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

public function code($id, $code_id)
{
    //...   
}
...