Laravel API - 尝试禁止管理员删除已订购的产品
Laravel API - Trying to forbid admins to delete a product if the product is ordered
如标题所说,我正在尝试确定该产品是否未订购,否则管理员可以删除该产品。它似乎有效,但我认为我没有以正确的方式处理它,因为控制台 return 出现错误 500。
这是我在 ProductController:
中的销毁函数
public function destroy(Product $product)
{
$ordersLink = $product->orders()->where('orders.product_id', $product->id)->exists();
if(!$ordersLink) {
$status = $product->delete();
}
return response()->json([
'status' => $status,
'message' => $status ? 'Product removed' : 'Product not removed'
]);
}
无法删除产品时会抛出错误,但应该return 'Product not removed.'
如有任何帮助,我们将不胜感激!干杯
将代码替换为以下内容:
public function destroy(Product $product)
{
$status = false;
$ordersLink = $product->orders()->exists();
if(!$ordersLink) {
$status = $product->delete();
}
return response()->json([
'status' => $status,
'message' => $status ? 'Product removed' : 'Product not removed'
]);
}
如标题所说,我正在尝试确定该产品是否未订购,否则管理员可以删除该产品。它似乎有效,但我认为我没有以正确的方式处理它,因为控制台 return 出现错误 500。
这是我在 ProductController:
中的销毁函数public function destroy(Product $product)
{
$ordersLink = $product->orders()->where('orders.product_id', $product->id)->exists();
if(!$ordersLink) {
$status = $product->delete();
}
return response()->json([
'status' => $status,
'message' => $status ? 'Product removed' : 'Product not removed'
]);
}
无法删除产品时会抛出错误,但应该return 'Product not removed.'
如有任何帮助,我们将不胜感激!干杯
将代码替换为以下内容:
public function destroy(Product $product)
{
$status = false;
$ordersLink = $product->orders()->exists();
if(!$ordersLink) {
$status = $product->delete();
}
return response()->json([
'status' => $status,
'message' => $status ? 'Product removed' : 'Product not removed'
]);
}