每次访问我可能有很多产品; 因此,数据透视表(product_visit)具有以下字段:id,product_id,visit_id,qtd和amount.
要删除数据透视表上的访问及其相关记录,一切正常:
public function getVisitDelete($id){
$visits = Visit::find($id);
$visits->products()->detach();
$visits->delete();
}
Run Code Online (Sandbox Code Playgroud)
但是,我无法弄清楚如何使用detach或类似的东西从数据透视表中删除一个特定记录.所以我最终做了以下事情:
public function getProductVisitDelete(){
$visit_id = (int)Request('visit_id');
$product_id = (int)Request('product_id');
$sqlDelete = "delete from product_visit where visit_id=$visit_id and product_id = $product_id";
DB::select($sqlDelete);
}
Run Code Online (Sandbox Code Playgroud)
虽然它有效,但我对这个解决方案感到非常满意 - 看起来我错过了一些东西.