我需要删除所有产品关系。当我尝试删除带有关系的项目时出错。这是我的代码:
public function getDelete(Product $product)
{
$name = $product->name;
$product->Field()->Data()->delete();
$product->Field()->delete();
$product->delete();
return redirect('products')->with('success', 'Product <b>'.$name.'</b> successfully deleted.');
}
以下是型号:
public function Field()
{
return $this->hasMany("\App\ProductField", 'product_id','id');
}
public function Data()
{
return $this->hasMany("\App\ProductFieldData", 'product_field_id','id');
}
Builder.php第2101行中的BadMethodCallException:调用undefined 方法Illuminate \ Database \ Query \ Builder :: Data()
我得到的这个错误如果产品没有ProductFieldData。但是,如果没有关系数据,我认为必须跳过它?
如何删除产品的所有关系?
答案 0 :(得分:0)
试试这个:
ON DELETE CASCADE
您正在处理集合,而您无法对项目集合执行删除功能,因此您必须对其进行迭代。
顺便说一句,你不应该使用{{1}}吗?你应该做一些研究,它会为你节省很多时间!