2017-02-22 20 views
1

Im работая на редактирование уже сохраненного продукта, и я получаю следующее сообщение об ошибке в браузереОтсутствует аргумент 1 для App Http Контроллеры ProductsController :: редактировать()

ErrorException in ProductsController.php line 88: 
    Missing argument 1 for App\Http\Controllers\ProductsController::edit() 
    in ProductsController.php line 88 

Мой контроллер маршрут как показано ниже:

Route::get('productsedit', array('as'=> '/productsedit','uses'=>'[email protected]')); 

функция как ниже

public function edit($id) 
    { 
      //find the post in the db and sav it as a variable 
     $product = Products:: findOrFail($id); 

     //return view and pass in the var previously created 
     return view('/productsedit')->withProducts($product); 
    } 

Где РМКО я буду неправильно

+0

подробнее об этом пожалуйста –

+0

Что такое с продуктами? попробуйте использовать view ('/ productsedit', compact ($ product)); – GuaHsu

+0

Можете ли вы показать, как вы связываетесь с этим маршрутом? –

ответ

2

В вашем методе редактирования на вашем контролере товаров вам нужен параметр ($id), но у вас его нет на вашем маршруте. Вот что говорит эта ошибка.

[Отсутствует аргумент 1 для App \ Http \ Контроллеры \ ProductsController :: редактировать()]

Ваш маршрут:

Route::get('productsedit', array('as'=> '/productsedit','uses'=>'[email protected]')); 

придется менять на что-то вроде этого:

Route::get('products/{$id}/edit', '[email protected]'); 

При вызове маршрута, на ваш взгляд, это будет ве, чтобы выглядеть следующим образом:

'products/{{$product->id}}/edit' 

Extra: Вы можете взглянуть на контроллеры ресурсов, так как вы на самом деле не следуя restfull практики, когда речь идет о маршрутах https://laravel.com/docs/5.4/controllers#resource-controllers