Validation Laravel表单请求验证的条件

Validation Laravel表单请求验证的条件,validation,laravel-8,laravel-formrequest,Validation,Laravel 8,Laravel Formrequest,我是拉雷维尔的新手。我通过表单请求进行验证。但是我想设置一个条件,如果check vendor exists返回true,那么需要检查规则,否则不检查。我正在制作API,所以我希望在else部分中有一个JSON响应。对于这一点,我应该在else部分写些什么,因为我已经尝试了很多方法(使用Trait、authorization函数),但给出了一个错误 $check_vendor_exists = Vendor::where('user_id', Auth::id())->get(

我是拉雷维尔的新手。我通过表单请求进行验证。但是我想设置一个条件,如果check vendor exists返回true,那么需要检查规则,否则不检查。我正在制作API,所以我希望在else部分中有一个JSON响应。对于这一点,我应该在else部分写些什么,因为我已经尝试了很多方法(使用Trait、authorization函数),但给出了一个错误

      $check_vendor_exists = Vendor::where('user_id', Auth::id())->get()->toArray();
      if (empty($check_vendor_exists)) {
          return [
              'business_name' => 'required||regex:/^[a-zA-Z_ ]*$/|max:191',
              'business_id' => 'required|exists:businesses,id',
              'business_email' => 'required|email|max:191|unique:vendors,business_email,NULL,id,deleted_at,NULL',
              'country_id' => 'nullable|exists:countries,id',
              'state_id' => 'nullable|exists:states,id',
              'city_id' => 'nullable|exists:cities,id',
              'business_logo' => 'nullable|image|mimes:jpeg,png,jpg|max:5120',
              'opening_hours' =>  'nullable|json',
              'gst_no' => 'required||regex:/^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z]{1}[1-9A-Z]{1}Z[0-9A-Z]{1}$/|max:191',
          ];
      } else {
          return $this->getMessages([], config('constants.messages.errors.something_wrong'), config('constants.validation_codes.unprocessable_entity'), false);
      }

我不确定我是否理解您的问题,您是否正在使用API,并且只需要返回
true

您可以在else语句中使用响应对象:

return response()->json(['message' => true]);


我很困惑。是否要为API端点返回json格式的响应?是的,我需要json响应。getmessage是我制作的特性,但当我使用它时,它会抛出一个错误。您可以查看@Hermerson Varela答案。您可以通过这种方式返回JSON中的任何响应。
return response()->json(true);