【问题标题】:Laravel validation unique with where closureLaravel 验证独特的 where 闭包
【发布时间】:2018-07-20 20:41:02
【问题描述】:

我有一张名为taxonomy 的表。它的列是idnameslugtype(标签、类别)。我为标签和类别创建了一个单独的控制器。

现在我需要对 slug 应用一个唯一的验证规则:

where type = tag

【问题讨论】:

  • 这个问题你解决了吗?

标签: php laravel validation


【解决方案1】:

试试这个: 'postData' => 'unique:table_name,column_name'

在此处查看更多验证: Validation Laravel

【讨论】:

    【解决方案2】:

    Unique 带有附加 where 子句的规则

    'slug' => Rule::unique('taxonomy')->where(function ($query) {
         return $query->where('type', 'tag');
    })
    

    【讨论】:

      【解决方案3】:

      您可以在单个验证函数中为insertupdate 应用这样的unique 规则。

      public function validateTaxonomy(Request $request){
          if(isset($request->id) && $request->id){
              $id = ','.$request->id.',id,type,'.$request->tag;
          }else{
              $id = ',Null,id,type,'.$request->tag;
          }
          $rules = [
                  'slug' => 'required|unique:taxonomy,slug'.$id,
          ];
          return Validator::make($request->all(), $rules);
      }
      

      store函数调用的例子

      public function store(Request $request)
      {
          $validator = $this->validateTaxonomy($request);
          if($validator->fails()){
              return redirect()->back()->withErrors($validator)->withInput();
          }
        ...
      }
      

      【讨论】:

        【解决方案4】:

        Unique 带有附加 where 子句的规则

        'slug' => Rule::unique('taxonomy')->where('type', 'tag')
        

        【讨论】:

          猜你喜欢
          • 2018-06-03
          • 2014-10-26
          • 1970-01-01
          • 2017-07-12
          • 2015-05-25
          • 2014-11-29
          • 2016-01-17
          • 2017-05-30
          • 2018-07-26
          相关资源
          最近更新 更多