[路线:tender_detail]语言环境Laravel缺少必需的参数

时间:2020-01-21 08:39:52

标签: laravel laravel-5 laravel-blade

将本地化添加到我的laravel项目后出现错误。 这是我的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');
});

这是我的错误

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)"

这是我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>

这是前往“投标详情”页面的路线

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

3 个答案:

答案 0 :(得分:1)

问题出在我的语言转换器链接中。
`

<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>

`

当我删除此链接时,路线开始工作

答案 1 :(得分:0)

尝试从

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

类似

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

通过路由方法提供您的tender-id

答案 2 :(得分:0)

此修改将更改您的网址,但我认为它将起作用 编辑

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>