2015-02-07 3 views
3

Я разрабатываю простое грубое приложение с использованием laraval 4.2. это мой метод контроллера для редактирования/обновления.Laraval modal binding дает маршрут не найдена ошибка

class ProductsController extends BaseController{ 

    public function getEdit($id){ 

     $product=Products::find($id); 
     $this->layout->content=View::make('products.edit',compact('product')); 
    } 
} 

это часть edit.blade.php файла

{{ Form::model($product, ['route' => ['products/update', $product->id], 'method' => 'patch']) }} 

я определить маршрут для ProductsController следующим образом в файле route.php

Route::controller ('products', 'ProductsController'); 

, когда я пытаюсь изменить продукт (http://localhost:8000/products/5/edit)

он говорит Маршрут [продукты/обновление] нет t определено.

это мой редактировать ссылка

<a class="btn btn-small btn-info" href="{{ URL::to('products/' . $product->id . '/edit') }}">Edit </a> 

, что является причиной этой ошибки? У меня есть функция patchUpdate() для функции contraller.

ответ

3

Вы используете контроллер маршрута, а не находчивый контроллер, поэтому нет маршрутов «named».

Вы могли бы сделать это

{{ Form::model($product, ['action' => '[email protected]', $product->id], 'method' => 'patch']) }} 
+0

Я пробовал с продуктами. но затем он говорит, что «не найден контроллер» ссылка на браузер: http: // localhost: 8000/products/3/edit – user1688181

+0

Я обновил свой ответ – Laurence

+0

да согласен с @TheShiftExchange либо использовать модельный маршрут, как упоминалось ниже, либо маршрут ресурса –

1

Добавить следующую строку вашего routes.php файл

Route::model('products', 'Product'); 
Route::resource('products', 'ProductsController'); 

, а также изменить то, что @The сдвиг Обмен предложили

products.update not products/update 

изменения также

<a class="btn btn-small btn-info" href="{{ URL::to('products/getEdit/'. $product->id) }}">Edit </a> 
+0

все еще дает ту же ошибку «Метод контроллера не найден». Правильно ли мой URL-адрес маршрутизации? http: // localhost: 8000/products/2/edit – user1688181

+0

только что отредактировал ответ. у вас есть выше код в файле routes.php –

+0

также изменение Edit

Смежные вопросы