我正在尝试编辑产品,但是我的路线无效。请让我知道如何使该资源路由正常工作。
这是我的网络文件:
Route::resource('product', 'ProductController')->except([
'store', 'update', 'destroy', 'edit'
]);
这是我的控制器文件:
public function edit($product)
{
$product=Product::find($product);
return view('admin.product.edit', compact($product));
}
这是我的查看文件:
<li><a href="{{ route('property.edit') }}">Edit</a></li>
答案 0 :(得分:2)
当您尝试编辑资源时,应提供该资源的ID。因此,如果您运行php artisan route:list
,则将看到product
的编辑路径需要一个参数,如下所示:
'product/{product}/edit'
,为使其正常工作,您应该执行以下操作:
<li><a href="{{ route('property.edit', $property) }}">Edit</a></li>
或
<li><a href="{{ route('property.edit', $property->id) }}">Edit</a></li>
第三种选择
<li>
<a href="{{ route('property.edit', ['id' => $property->id]) }}">Edit</a>
</li>
您命名的路线称为property.edit
,并且您与我们共享了product
路线,因此,请编辑您的问题并提供详细信息。但是无论如何,您都会丢失参数,因此会出错。
答案 1 :(得分:0)
您没有将参数传递给您的路线。期望参数的路由。假设您需要编辑产品,但是您必须知道要为此编辑的产品,并在获取记录的帮助下传递了产品ID或产品信息。
您做错了。你什么也没传递。只是在下面做些什么
<li><a href="{{ route('property.edit', $product->id) }}">Edit</a></li>
在上面的代码中,将id作为参数传递,在控制器中,通过从如下所示的路径传递接收到的id来获得结果。
$product=Product::find($product);
return view('admin.product.edit', compact($product));
如果要查看路由列表以及所需的每个路由的方法和参数
您可以在终端php artisan route:list