如何在Laravel查询中添加and条件,避免插入相同libelle与对应id的重复数据
实现方案
你只需要在原有查询链式追加where条件即可,Laravel 查询构造器连续调用where方法默认采用 AND 逻辑拼接,刚好符合你的需求。
修改后的完整代码如下:
public function addPost(Request $request, $id) { if (L_Examen_Objectif::where('libelle', '=', $request->input('libelle')) // 追加id匹配条件,此处根据你的业务需求对应调整匹配的字段和值即可 ->where('id_lexamen', '=', $id) ->exists()) { return 'true'; } else { $Examen_data = array( 'libelle' => $request->input('libelle'), 'id_examen' => $request->input('id_examen'), 'id_lexamen' => $id, ); L_Examen_Objectif::insert($Examen_data); } }
补充说明:
- 如果你的业务是要匹配
libelle和请求传入的id_examen同时重复,把第二个where条件替换为->where('id_examen', '=', $request->input('id_examen'))即可。 - 建议额外给数据库对应表添加
libelle和对应id字段的联合唯一索引,即使代码校验出现疏漏,数据库层面也会阻止重复数据插入,安全性更高。
内容的提问来源于stack exchange,提问作者drnwork
相关产品推荐
相关产品推荐

