Edit File: AddProductsRequest.php
<?php namespace App\Http\Requests\Api\StoreProduct; use App\Traits\ApiTrait; use Illuminate\Contracts\Validation\Validator; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Exceptions\HttpResponseException; use App\Models\StoreMenuCategory; use App\Models\ProductAdditiveCategory; class AddProductsRequest extends FormRequest { use ApiTrait; public function rules() { return [ 'name_ar' => 'required|string|min:3|max:191', 'name_en' => 'required|string|min:3|max:191', 'image' => 'nullable', // 'price' => 'required|numeric', 'discount' => 'nullable|numeric|lt:100', 'type' => 'multiple', 'store_menu_category_id' => 'required', 'desc_ar' => 'nullable|string|min:3|max:191', 'desc_en' => 'nullable|string|min:3|max:191', 'addition' => 'nullable', ]; } public function messages() { return [ 'discount_price.lt' => 'يجب ان يكون سعر العرض اقل من سعر المنتج', 'desc_ar.min' => 'يجب ان يكون طول نص الوصف بالعربي علي الاقل 3 حروف', 'desc_en.min' => 'يجب ان يكون طول نص الوصف بالنجليزي علي الاقل 3 حروف', 'discount_from.required_with' => 'مطلوب حقل الخصم من في حاله توفر سعر العرض', 'discount_to.required_with' => 'مطلوب حقل الخصم الي في حاله توفر سعر العرض', ]; } public function withValidator($validator) { $validator->after(function ($validator) { $menu = StoreMenuCategory::find($this->store_menu_category_id); if (!$menu) { $validator->errors()->add('store_menu_category_id', trans('stores_dashboard.not_found')); } if ($this->addition) { foreach (json_decode($this->addition) as $addition) { $additive_category = ProductAdditiveCategory::find($addition); if (!$additive_category) { $validator->errors()->add('addition', trans('stores_dashboard.additive_not_fount')); } } } }); } protected function failedValidation(Validator $validator) { throw new HttpResponseException($this->requestFailsReturn($validator)); } }
Back to File Manager