laravel 表单验证实现多个字段组合后唯一

(编辑:jimmy 日期: 2026/1/1 浏览:2)

Laravel 表单验证器的几种使用方法

1、使用控制器的 validate 方法进行参数验证

/**
 * 保存一篇新的博客文章。
 *
 * @param Request $request
 * @return Response
 */
public function store(Request $request)
{
  $this->validate($request, [
    'title' => 'required|unique:posts|max:255',
    'body' => 'required',
  ]);

  // 文章内容是符合规则的,存入数据库
}

2、手动创建验证器实例进行验证

使用默认的验证信息

/**
 * 保存一篇新的博客文章。
 *
 * @param Request $request
 * @return Response
 */
public function store(Request $request)
{
  $rules = [
    'title' => 'required|unique:posts|max:255',
    'body' => 'required',
  ];
  $validator = Validator::make($request->all(), $rules);
  if ($validator->fails()) {
    return redirect('post/create')->withErrors($validator)->withInput();
  }

  // 文章内容是符合规则的,存入数据库
}

使用自定义的验证信息

/**
 * 保存一篇新的博客文章。
 *
 * @param Request $request
 * @return Response
 */
public function store(Request $request)
{
  $rules = [
    'title' => 'required|unique:posts|max:255',
    'body' => 'required',
  ];
  $messages = [
    'title.required' => '请填写文章标题',
    'title.unique' => '文章标题不能重复',
    'title.max' => '文章标题不能超过255个字符',
    'body.required' => '请填写文章内容',
  ];
  $validator = Validator::make($request->all(), $rules, $messages);
  if ($validator->fails()) {
    return redirect('post/create')->withErrors($validator)->withInput();
  }

  // 文章内容是符合规则的,存入数据库
}

3、创建表单请求进行验证

创建表单请求文件:php artisan make:request ExampleRequest
表单请求文件内容:

<"htmlcode">
<"htmlcode">
where[] = ['parentId','=',where[]=[′parentId ′,′ = ′,this->request->get('parentId')];
return [

    'menuTitle' => ['required', 'max:32','min:2',Rule::unique('admin_menu','menuTitle')->where(function($query)use($where){
      $query->where($where)->whereNull('deleted_at');
      })->ignore($id) ],
    'menuTitleEn' => ['required', 'max:32','min:2',Rule::unique('admin_menu','menuTitleEn')->where(function($query)use($where){
      $query->where($where)->whereNull('deleted_at');
      })->ignore($id) ],
    'menuRoute' => ['required',Rule::unique('admin_menu','menuRoute')->ignore($id)],
    'menuIcon' => ['required', 'min:2','max:32'],
    'routeName' => ['sometimes', 'min:2','max:32'],
    'parentId' => ['required','numeric'],
    'order'=>['sometimes','numeric']
    
  ];

一句话新闻
高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。