laravel - Laravel - 如何验证唯一规则请求是否区分大小写
问题描述
我的 Laravel-5.8 中有这个规则
规则:创建
public function rules()
{
return [
'location_name' => [
'required',
'string',
'min:3',
'max:80',
Rule::unique('hr_work_locations', 'location_name', 'company_id')
],
];
}
规则:编辑
public function rules()
{
return [
'location_name' => [
'required',
'string',
'min:3',
'max:80',
Rule::unique('hr_work_locations', 'location_name', 'company_id')->ignore($this->work_location)
],
];
}
根据规则,location_name 对于每个公司(company_id)都是唯一的。同样在编辑规则中,
忽略($this->work_location)
是为了路线
控制器:创建
public function store(StoreWorkLocationRequest $request)
{
try {
$worklocation = HrWorkLocation::create([
'location_name' => $request->location_name,
'is_active' => 1,
]);
Session::flash('success', 'Work Location is created successfully');
return redirect()->route('hr.work_locations.index');
}
catch (Exception $exception)
{
Session::flash('error', 'Action failed!');
return redirect()->route('hr.work_locations.index');
}
}
我观察到它允许 location_name 作为英格兰或英格兰。
如何使 Rule::unique 区分大小写?
谢谢你。
解决方案
您可以将输入设置为小写,这样您就不必担心用户在表单中输入的内容。
use Illuminate\Support\Str;
之后,您可以在没有命名空间前缀的情况下调用它:
Str::lower($request->location_name);
推荐阅读
- c++ - 当 return 语句、逗号运算符、braced-init-list 和 std::unique_ptr 一起出现时
- c# - 单元测试未在 vs 中运行,但在 azure CI 管道中运行良好
- excel - 跨工作表单元格比较和更新
- html - 移动设备中的纯 CSS 加载器动画
- javascript - 滚动条高度指示器执行功能
- julia - 在 Julia 中迭代具有不同数量参数的不同函数
- dynamic - 动态链接 sweetalert2
- react-native - React Native:在没有特定大小的情况下将文本的内容放入视图中
- c++ - 如何让“static_assert”打印失败时的值?
- python-3.x - 为什么我的 python 套接字服务器没有收到消息?