0
제품의 모든 관계를 삭제해야합니다. 관계가있는 항목을 삭제하려고 할 때 오류가 발생했습니다. 여기Laravel에서 모든 관계를 삭제하는 가장 좋은 방법은 무엇입니까?
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.');
}
모델입니다 : Builder.php 라인 2101에서
public function Field()
{
return $this->hasMany("\App\ProductField", 'product_id','id');
}
public function Data()
{
return $this->hasMany("\App\ProductFieldData", 'product_field_id','id');
}
BadMethodCallException : 여기 내 코드가 정의되지 않은 방법를 분명히 \ 데이터베이스에 전화 \ 쿼리 \ 빌더 :: 데이터()
이 오류는 제품에 ProductFieldData가없는 경우에 발생합니다. 그러나 관계 데이터가 없다면 건너 뛰지 않으면 안된다고 생각합니까?
제품을 어떻게 삭제합니까? 당신은 컬렉션을 상대하고
foreach ($product->Field()->Data as $data) {
$data->delete();
}
당신이 그것을 반복하는 그래서 당신은 항목 컬렉션에 삭제 기능을 수행 할 수 없습니다
같은 오류가 발생했습니다. 삭제 캐스케이드에 외래 키와 설정을 추가했으나 Laravel에 의해 먼저 삭제해야합니다. – Haroldas
@Haroldas 님이 편집을 시도했습니다. plz를 시도하십시오. – Markinson
@Haroldas가 작동 했습니까? 만약 당신이 이것을 대답으로 받아들이면 기쁠 것입니다. – Markinson