每次访问我可能会有很多产品;因此数据透视表(product_visit)包含以下字段: id,product_id,visit_id,qtd和amount。
要删除数据透视表上的访问及其相关记录,一切正常:
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);
}
但是,我无法弄清楚如何使用detach或类似的东西从数据透视表中删除一个特定记录。所以我最终做了以下事情:
{{1}}
虽然它有效,但我对这个解决方案感到非常满意 - 看起来我错过了一些东西。
答案 0 :(得分:11)
您可以使用$visits = Visit::find($visit_id);
$visits->products()->wherePivot('product_id','=',$product_id)->detach();
方法从访问中分离特定产品。
detach()
<强>更新强>
如Laravel docs“附加/分离”部分所述,您可以在$visits = Visit::find($id);
$visits->products()->detach($product_id);
方法中传递要删除的相关模型的ID。实施例
$level[0] = $parent_id;
for ($i=0; $i<6; $i++ )
{
$j = $i+1;
$search = "SELECT parent_id FROM `$database`.`$mem` where id='$level[$i]'";
$result = mysqli_query($con, $search);
$row = mysqli_fetch_array($result);
$level[$j] = $row['parent_id'];
}