我已经创建了个人资料更新页面,如果用户的account_type = 1我不能使用tax_number,company_name和tax_administration,但是用户的account_type = 1我必须使用以下验证: 例如'tax_number'=>'required | max:10'
我该怎么办呢?
你能帮我吗?
我的代码:
<?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.',
];
}
}
谢谢。
答案 0 :(得分: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;
}