检查Laravel 5.5中是否存在记录
检查Laravel 5.5中是否存在记录
已关闭。该问题需要详细说明或澄清。当前无法接受答案。
想要改进这个问题?通过编辑此帖子添加详细信息并澄清问题。
改善这个问题
我有一个动态输入表单,我想检查记录是否存在,如果不存在,则无法插入数据
我的控制器
$user = Master::where('id_a','=',$request->get('id_a'))->where('id_b','=',$request->get('id_b'))->get(); if($user->isEmpty()){ // insert }else{ //message "cannot input" }
如果插入一个数据,成功...但如果在我的控制器中插入数组,则不会检查...为什么在输入数组数据中总是插入?
admin 更改状态以发布 2023年5月21日
你可以使用exists()
if(Master::where('id_a','=',$request->get('id_a'))->where('id_b','=',$request->get('id_b'))->exists()) { do something }
而且我建议你减少行内元素的使用,改为像这样:
$id_a = $request->get('id_a'); $id_b = $request->get('id_b'); if(Master::where('id_a','=', $id_a)->where('id_b','=',$id_b)->exists()) { do something }
这是一个伪代码,仅用于检查id_b
$data = [1,2,3,4]; $data_a = [1,2,3,4]; $masters = Master::whereIn('id_b', $data)->whereIn('id_a', $data_a)->get(); foreach($data as $key => $value) { $isExisted = false; foreach ($masters as $master) { if ($master->id_b == $value[$key] && $master->id_a == $data_a[$key]) { $isExisted = true; break; } } if ( ! $isExisted) { $master = new Banner(); $master->value = your_data; $master->save(); } }