编辑产品时出现“ [Route:property.edit]缺少必需的参数”错误

时间:2019-05-22 06:15:03

标签: laravel laravel-5 eloquent routes relation

我正在尝试编辑产品,但是我的路线无效。请让我知道如何使该资源路由正常工作。

这是我的网络文件:

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>

2 个答案:

答案 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

中运行此命令