Отсутствуют обязательные параметры для [Route: tender_detail] Locale Laravel - PullRequest
0 голосов
/ 21 января 2020

Получена ошибка после добавления локализации в мой laravel проект. Вот моя сеть. php

//Tender
Route::group(['prefix' => '{language}/tender', 'middleware' => ['permission:tender-page']], function() {
    Route::get('/', 'TenderController@index')->name('tender');
    Route::get('/add', 'TenderController@add')->name('tender_add');
    Route::get('/{id}', 'TenderController@detail')->name('tender_detail');
});

Вот моя ошибка

ErrorException thrown with message:
"Missing required parameters for [Route: tender_detail] [URI: {language}/tender/{id}]. 
(View: /Users/admin/Desktop/dev/medicare/resources/views/layouts/template.blade.php) 
(View: /Users/admin/Desktop/dev/medicare/resources/views/layouts/template.blade.php)"

Вот часть моего шаблона.blade. php

<li class="{{ Request::is('tender*') ? 'active' : '' }}">
<a href="{{ route('tender', ['language' => app()->getLocale()]) }}">
<i class="notika-icon notika-house"></i> {{ __('tender') }} </a>
</li>

Вот маршрут к странице tender_detail

<a href="{{ route('tender_detail', ['language' => app()->getLocale(), 'id' => 1])}}">ЛОТ 123456-ОК3</a>

Ответы [ 3 ]

1 голос
/ 22 января 2020

Проблема была в ссылках моего переключателя языка.
`

<li class="nav-item">
   <a href="{{ route(Route::currentRouteName(), 'ru') }}" class="nav-link">RU</a>
 </li>
 <li class="nav-item">
   <a href="{{ route(Route::currentRouteName(), 'tr') }}" class="nav-link">TR</a>
 </li>

`

когда я удаляю эти ссылки, маршруты начинают работать

0 голосов
/ 21 января 2020

Это изменение изменится, измените ваши URL, но я думаю, что это будет работать. Редактировать

Route::group(['prefix' => '{language}/tender', 'middleware' => ['permission:tender-page']], function() {
        Route::get('/', 'TenderController@index')->name('tender');
        Route::get('/add', 'TenderController@add')->name('tender_add');
        Route::get('/{id}', 'TenderController@detail')->name('tender_detail');
    });

К этому

Route::group(['prefix' => 'tender', 'middleware' => ['permission:tender-page']], function() {
        Route::get('/{language}/', 'TenderController@index')->name('tender');
        Route::get('/{language}/add', 'TenderController@add')->name('tender_add');
        Route::get('/{language}/{id}', 'TenderController@detail')->name('tender_detail');
    });

, а затем попробовать что-то вроде этого

<a href="{{ route('tender_detail', ['language' => app()->getLocale(), 'id' => 1])}}">ЛОТ 123456-ОК3</a>
0 голосов
/ 21 января 2020

Попробуйте изменить с

<a href="{{ route('tender', ['language' => app()->getLocale()]) }}">

на что-то вроде

<a href="{{ route('tender', ['language' => app()->getLocale(), 'id' => 'your-tender-id']) }}">

и укажите tender-id в методе маршрута

...