2015-02-07 80 views
3

我正在开发使用laraval 4.2的简单原始应用程序。这是我编辑/更新的控制器方法。Laraval模式绑定给出路由未找到错误

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

它说的是Route [products/update] no定义。

这是我的编辑链接

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

什么是这个错误的原因是什么?我已经在product contraller上定义了patchUpdate()函数。

回答

3

您正在使用路由控制器,而不是一个足智多谋的控制器 - 因此没有'命名'路由。

你能做到这一点

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

我试过products.update。但后来它说“控制器方法未找到”浏览器链接是http:// localhost:8000/products/3 /编辑 – user1688181 2015-02-07 09:42:41

+0

我更新了我的答案 – Laurence 2015-02-07 09:52:59

+0

是同意@TheShiftExchange使用模型路线如下所述或资源路径 – 2015-02-07 10:01:57

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

仍然给出同样的错误“Controller method not found”.is我的路由网址是否正确? http:// localhost:8000/products/2/edit – user1688181 2015-02-07 10:07:42

+0

刚编辑的答案。你有以上代码routes.php文件 – 2015-02-07 10:09:38

+0

也改变Edit 2015-02-07 10:11:08

相关问题