Laravel modal binding gives route not found error
我正在使用 laravel 4.2 开发简单的粗略应用程序。这是我用于编辑/更新的控制器方法。
1 2 3 4 5 6 7 8 | class ProductsController extends BaseController{ public function getEdit($id){ $product=Products::find($id); $this->layout->content=View::make('products.edit',compact('product')); } } |
这是edit.blade.php文件的一部分
1 | {{ Form::model($product, ['route' => ['products/update', $product->id], 'method' => 'patch']) }} |
我在 route.php 文件中为 ProductsController 定义路由如下
1 | Route::controller ( 'products', 'ProductsController'); |
当我尝试编辑产品时(http://localhost:8000/products/5/edit)
它说 Route [products/update] 未定义。
这是我的编辑链接
1 | id . '/edit') }}">Edit |
这个错误的原因是什么?我在产品控制器上定义了 patchUpdate() 函数。
您使用的是路由控制器,而不是资源丰富的控制器 - 所以没有"命名"路由。
你可以这样做
1 | {{ Form::model($product, ['action' => 'ProductsController@putEdit', $product->id], 'method' => 'patch']) }} |
在你的 routes.php 文件中添加下面一行
1 2 | Route::model('products', 'Product'); Route::resource('products', 'ProductsController'); |
并更改@The Shift Exchange 的建议
1 | products.update not products/update |
也改变
1 | id) }}">Edit |