php - 使验证成为 laravel 中的唯一整数输入
问题描述
我需要验证 (request_number) 输入是唯一的整数,如果学生写一个字符串作为示例,则显示一条消息。如果用户写入现有号码的消息是(您的订单号码存在),如果用户写入非整数值的消息是(输入应该是唯一的号码)现在我想对(request_number)进行双重验证)。
这是我在控制器中的商店
public function store(Request $request)
{
$excuse = new Student();
$excuse->request_number = $request->input('request_number');
$validatedData = $request->validate([
'request_number' => Rule::unique('students')->where(function ($query)
{
return $query->whereIn('status_id',[2,4,6,5]);
})]);
$excuse->student_id = Auth::guard('web')->user()->id;
$excuse->status_id = 1;
$excuse->college_id = Auth::guard('web')->user()->college_id;
$excuse->save();
return redirect('/students');
}
这是我提出请求的表格
<form method="post" action="{{url('/student')}}" enctype="multipart/form-data">
@csrf
<h1> Make order FORM</h1>
<div class="form-group">
<label for="requestnumber"> write the Request Number </label><br>
<input type="text" id="request_number" name="request_number"class="form-control" minlength="5" style="width:50%" required >
</div>
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li> the number of request is exists </li>
@endforeach
</ul>
</div>
@endif
<br>
<button type="submit" class="btn btn-primary">send</button><br>
</form>
解决方案
$validatedData = $request->validate([
'request_number ' => [
'required', 'integer', function($attr, $val, $fail) {
if (YourTargetModel::where('id', [1,2,3])->count() > 0) {
return $fail("The request number field should be
unique");
}
}]
]);
推荐阅读
- c++ - 窗口 ros visual studio 2017 catkin 出错
- node.js - 如何使用 gulp 创建 foo-example/index.html 而不是 foo-example.html?
- python - 如果使用 xpath 查找元素的 Selenium 语句(包含文本)
- html - 防止图像增加 div 大小?
- ios - 列表中的 SwiftUI .matchedGeometryEffect 不起作用
- sql - Golang SQL 错误:“pq:关系“用户数据”不存在”
- node.js - 不在对象中分配新数据
- git - 如何在 Ubuntu 上本地存储 git 用户名/密码
- node.js - 收到通知时如何在 react native/Node.js 中设置徽章?
- r - 如何调整代码以生成输出表