Отсутствуют обязательные параметры для отображения ресурсов маршрута

#php #laravel #localization

#php #laravel #локализация

Вопрос:

Я передаю два параметра в letters.показать маршрут. один — это locale, другой — id.

Отсутствуют обязательные параметры для [Route: letters.show] [URI: {language}/letters/{letter}]. (Просмотр: C:xampphtdocsdsttsresourcesviewsinclayout.blade.php )

Эта ошибка отображается, хотя есть все необходимые параметры.

Мой web.php файл

 Route::group(['prefix' => '{language}'], function () {

Route::get('/', function () {
    return view('welcome');
})->name('welcome');



Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');

Route::resource('letters', 'LettersController')->middleware('auth');
});
  

Метод отображения контроллера букв

 public function show($lang, $id)
{
         

    $letter = Letter::find($id);
        
    return view('letters.show')->with('letter', $letter);
        }
  

Страница My letters.index, на которой я разместил кнопку отображения букв

 <a class="btn bg-green btn-block btn-xs waves-effect" href="{{ route('letters.show', [app()->getLocale(), $letter->id]) }}"></a>
  

Когда я нажимаю кнопку «Показать» в адресной строке браузера, отображается правильный адрес: http://dstts.site/en/tasks/1

Чего мне здесь не хватает?

Комментарии:

1. почему у вас есть tasks url? это должно быть letters

2. Вы неправильно указали URL-адрес, это будет dstts.site/ru/letters/1

3. Я упомянул неправильный URL-адрес в вопросе. В любом случае dstts.site/en/letters/1 по-прежнему не работает. 🙁

Ответ №1:

Все в порядке, в вашем коде все в порядке, попробуйте проверить $letter->id , что это не null так, или вы можете протестировать поочередно $letter->id с любой существующей моделью, если она работает, ошибка будет в $letter->id

Комментарии:

1. $letter->id не равен нулю. Даже если значение равно null, проблем быть не должно. Потому что я уже просматривал нулевую запись раньше. Все эти маршруты работали нормально, пока я не объединил свою ветку с другой. Не знаю, что произошло. Но эта проблема возникает только на маршрутах, для которых требуется второй параметр. letters.index работает нормально.