Edit File: StoreRegisterRequesr.php
<?php namespace App\Http\Requests\Api\Auth; use App\Models\User; use App\Rules\ValidateEmailEnd; use App\Traits\ApiTrait; use App\Traits\GeneralTrait; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Exceptions\HttpResponseException; use Illuminate\Http\Request; use Illuminate\Support\Str; use Illuminate\Validation\Rule; class StoreRegisterRequesr extends FormRequest { use ApiTrait, GeneralTrait; public function __construct(Request $request) { $number = $this->convert2english($request['phone']); $request['phone'] = $this->phoneValidate($number); } /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return true; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return [ 'icon' => 'required|image|mimes:jpg,jpeg,svg,png', 'bank_name' => 'required', 'iban_number' => 'required|min:10|unique:stores,iban_number,NULL,id,deleted_at,NULL', 'bank_number' => 'required|numeric|min:10|unique:stores,bank_number,NULL,id,deleted_at,NULL', 'bank_owner_name' => 'required', 'phone' => ['required', 'min:9', 'numeric'], 'country_key' => 'nullable', 'email' => ['required', 'email', new ValidateEmailEnd], 'password' => 'required|min:6', 'device_id' => 'required', 'device_type' => 'required|in:ios,android', ]; } public function messages() { return [ 'bank_number.required' => 'رقم البنك مطلوب', ]; } public function withValidator($validator) { $validator->after(function ($validator) { $number = $this->convert2english($this->phone); $phone = $this->phoneValidate($number); if (User::where('phone', $phone)->where('type' , 'store')->where('completed_info' , 'true')->exists()) { $validator->errors()->add( 'name', trans('auth.phone_unique') ); } if (User::where('email', $this->email)->where('type' , 'store')->where('completed_info' , 'true')->exists()) { $validator->errors()->add( 'name', trans('auth.email_unique') ); } }); } public function prepareForValidation() { $number = $this->convert2english($this->phone); $phone = $this->phoneValidate($number); // if ($this->is_unique('phone', $phone)) { // $msg = trans('auth.phone_unique'); // return $this->failMsg($msg); // } $this->merge([ 'phone' => $phone, ]); } protected function failedValidation(\Illuminate\Contracts\Validation\Validator $validator) { $msg = implode(' , ', $validator->errors()->all()); throw new HttpResponseException(response()->json(['key' => 'fail', 'msg' => $msg])); } }
Back to File Manager