Reputation: 95
Got an error after adding localization to my laravel project. Here is my web.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');
});
Here is my error
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)"
Here is part of my template.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>
Here is route to the tender_detail page
<a href="{{ route('tender_detail', ['language' => app()->getLocale(), 'id' => 1])}}">ЛОТ 123456-ОК3</a>
Upvotes: 0
Views: 639
Reputation: 95
The problem was in my language changer links.
`
<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>
`
when i delete this links, routes start work
Upvotes: 1
Reputation: 868
This edit will change change your urls alittle but i think it will work Edit
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');
});
To this
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');
});
then try something like this
<a href="{{ route('tender_detail', ['language' => app()->getLocale(), 'id' => 1])}}">ЛОТ 123456-ОК3</a>
Upvotes: 0
Reputation: 868
Try changing from
<a href="{{ route('tender', ['language' => app()->getLocale()]) }}">
to something like
<a href="{{ route('tender', ['language' => app()->getLocale(), 'id' => 'your-tender-id']) }}">
provide your tender-id
in the route method
Upvotes: 0