0

i have made profile update page , if user's account_type = 1 i mustn't use tax_number , company_name and tax_administration but user's account_type = 1 i must use like this validate : for example 'tax_number' => 'required|max:10'

how can i do it the short way ?

may you help me ?

My Code :

<?php

namespace App\Http\Requests;

use App\Models\User;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;

class ProfileRequest extends FormRequest
{
    /**
     * 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(User $user)
    {
        if ( $this->isMethod('POST') ) {
            return [
                'name'                  => 'required|min:2|max:100',
                'surname'               => 'required|min:2|max:100',
                'email'                 => ['required','min:6','max:50',Rule::unique('users', 'email')->ignore(auth()->id())],
                'phone'                 => 'required|min:6|max:14',
                'image'                 => 'sometimes|nullable|image|mimes:jpeg,png,jpg|max:5120',
                'id_no'                 => 'required|max:16',
                'address'               => 'required|min:6|max:250',
                'country'               => 'required|max:100',
                'city'                  => 'required|max:100',
                'county'                => 'required|max:100',
                'gender'                => 'required',
                'tax_number'            => 'required|max:10|min:10',
                'compamy_name'          => 'required|max:100|min:2',
                'tax_administration'    => 'required|max:200',
            ];
        }
    }

    public function messages()
    {
        return [
            'name.required'             => 'İsim Zorunludur.',
            'name.max'                  => 'İsim Maksimum 100 Karakter Olmalıdır.',
            'surname.required'          => 'Soyisim Zorunludur.',
            'surname.max'               => 'Soyisim Maksimum 100 Karakter Olmalıdır.',
            'email.required'            => 'Email Zorunludur.',
            'email.max'                 => 'Email Maksimum 50 Karakter İçermelidir.',
            'email.unique'              => 'Email Daha Önce Kullanılmıştır.',
            'password.required'         => 'Şifre Zorunludur.',
            'password.max'              => 'Şifre Maksimum 12 Karakter Olmalıdır.',
            'password.confirmed'        => 'Şifreler Birbiriyle Uyuşmamaktadır.',
            'phone.required'            => 'Telefon Zorunludur.',
            'phone.max'                 => 'Telefon Maksimum 15 Karakter Olmalıdır.',
            'image.max'                 => 'Resim Maksimum 2 MB Boyutunda Olmalıdır.',
            'image.mimes'               => 'Resim JPEG , JPG ve PNG Formatında Olmalıdır.',
            'image.image'               => 'Resim Bir Fotoğraf Olmalıdır.',
            'id_no.required'            => 'Vatandaşlık Numarası Zorunludur.',
            'id_no.max'                 => 'Vatandaşlık Numarası Maksimum 16 Karakter Olmalıdır.',
            'address.required'          => 'Adres Zorunludur.',
            'address.max'               => 'Adres Maksimum 250 Karakter Olmalıdır.',
            'country.required'          => 'Ülke Zorunludur.',
            'country.max'               => 'Ülke Maksimum 100 Karakter Olmalıdır.',
            'county.required'           => 'Şehir Zorunludur.',
            'county.max'                => 'Şehir Maksimum 100 Karakter Olmalıdır.',
            'gender.required'           => 'Cinsiyet Zorunludur.',
            'tax_number.required'       => 'Vergi Numarası Zorunludur.',
        ];
    }
}


Thanks in advance.

1 Answer 1

1
public function rules(User $user)
{
    $rules = [
        // general rules
    ];

    if (1 === $user->account_type) {
        // add rules for account_type = 1
        // e.g.
        $rules['tax_number'] = 'required|max:10';
    } else {
        // add rules
    }

    return $rules;
}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.