Отсутствуют обязательные параметры для [Route: showbilling] [URI: {locale} / projects / {id} / billings] - PullRequest
0 голосов
/ 14 мая 2019

Я думаю, что это последняя проблема моего проекта. У меня есть 2 параметра в 1 маршруте {locale}/projects/{id}/billings, проблема в том, что я передал 2 значения параметров в поле зрения, но все равно выдает ошибку с пропуском обязательных параметров. Вот мой код

web.php

Route::group(['prefix' => '{locale}', 'where' => ['locale' => '[a-zA-Z]{2}'], 'middleware' => 'setlocale'], function () {

    Route::get('/', function () {

    return view('welcome');
    })->name('main');

    Auth::routes();

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

    //Customers
    Route::get('/customers', 'CustomerController@showcust')->name('customers');
    Route::post('/sendcust', 'CustomerController@sendcust')->name('sendcust');


    //Items
    Route::get('/items', 'ItemController@showitems')->name('items');
    Route::post('/senditem', 'ItemController@senditem')->name('senditem');

    //Projects
    Route::get('/projects', 'ProjectController@showprojects')->name('projects');
    Route::post('/sendproj', 'ProjectController@sendproj')->name('sendproj');
    //ProjectBillings
    Route::get('/projects/{id}/billings', 'ProjectController@showbilling')->name('showbilling');
    Route::post('/sendbilling', 'ProjectController@addbilling')->name('sendbilling');   

    //Invoices
    Route::get('/invoices', 'InvoiceController@showinvoice')->name('invoices');
    Route::post('/sendinvoitem', 'InvoiceController@sendinvoitem')->name('sendinvoitem');
    Route::get('/invoices/{id}/details', 'InvoiceController@showdetails');
    Route::post('/updateitem','InvoiceController@updatedetail')->name('updateitem');
    Route::get('invoices/{id}/generate', 'InvoiceController@generate');
    Route::post('/updatestatus', 'InvoiceController@changestatus')->name('updatestatus');

});

projects.blade.php

<a href="{{route('showbilling', ['locale' => app()->getLocale(), 'id' => $cat->id])}}" class="btn btn-default btn-xs waves-effect waves-float waves-green"> {{__('Add Billing')}} </a>

ProjectController.php

public function showbilling($locale, $id){
   $billings = Project::find($id);
   //return $billings;
   return view('admin.addbillings', compact('billings'));
}

Ответы [ 2 ]

0 голосов
/ 16 мая 2019

Я думаю, что вы должны использовать этот URL: / {locale} / showbilling (например: "as / showbilling") вместо того, чтобы использовать его сейчас. {Locale} эффективен в группе маршрутизаторов. Итак, я думаю, вы забыли это.

0 голосов
/ 14 мая 2019

ОБНОВЛЕНИЕ

Вы неправильно передаете параметры в маршрут. Полученная ошибка генерируется при использовании метода Router, а не контроллера, при правильной настройке метода Routerдолжен исправить вашу проблему.

Route::prefix('{locale}')->middleware('setlocale')->group(function(){
    Route::get('/projects/{id}/billings', 'ProjectController@showbilling')->name('showbilling');
})->where('locale' => '[a-zA-Z]{2}');

Результирующий URI / {locale} / project / {id} / billings

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...