我有一个来自html页面的数据。我想检查日期和地点值是否已经存在。如果它们存在,它应该抛出一个错误,说数据已经存在,如果那些日期和地点数据不在那里,它应该允许用户保存它。
这是我用来保存它的代码,
public function StoreSampling(Request $request)
{
$date = Carbon::createFromFormat('d-m-Y', $request->input('date'))->format('Y-m-d');
$doctorname = Input::get('doctorselected');
$product = Input::get('product');
$product= implode(',', $product);
$quantity = Input::get('qty');
$quantity =implode(',',$quantity);
$representativeid = Input::get('representativeid');
//Store all the parameters.
$samplingOrder = new SamplingOrder();
$samplingOrder->date = $date;
$samplingOrder->doctorselected = $doctorname;
$samplingOrder->products = $product;
$samplingOrder->quantity = $quantity;
$samplingOrder->representativeid = $representativeid;
$samplingOrder->save();
return redirect()->back()->with('success',true);
}
我搜索了一些堆栈溢出页面。通过身份证找到了存在,这是样本,
$count = DB::table('teammembersall')
->where('TeamId', $teamNameSelectBoxInTeamMembers)
->where('UserId', $userNameSelectBoxInTeamMembers)
->count();
if ($count > 0){
// This user already in a team
//send error message
} else {
DB::table('teammembersall')->insert($data);
}
但我想比较一下日期和地点。如果它们不存在,我想让用户保存它。基本上是试图阻止重复条目。
请帮帮我。
3条答案
按热度按时间wd2eg0qa1#
您需要将查询修改为以下内容:
你不需要使用
count()
作为你唯一试图确定存在的人。还可以考虑添加多列
unique
属性,以确保没有具有相同数据和位置的成员。yrwegjxp2#
有很多很好的帮助函数
firstOrNew
以及firstOrCreate
,后者将直接创建它,而第一个需要显式调用save
. 所以我会说:iyfamqjs3#
最好的方法是对多个列使用laravel惟一验证。看看这个。我是这么想的
id
是你的主键,在sampling_orders
table。验证规则如下所示:p、 s:我没有看到
place
在您的StoreSampling()