小编Sér*_*der的帖子

Laravel 5.4 - 从数据透视表中删除特定记录

每次访问我可能有很多产品; 因此,数据透视表(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)

虽然它有效,但我对这个解决方案感到非常满意 - 看起来我错过了一些东西.

php many-to-many laravel sql-delete

7
推荐指数
1
解决办法
4323
查看次数

标签 统计

laravel ×1

many-to-many ×1

php ×1

sql-delete ×1