- Düzenlendi
Aşağıda UserControllerim
public function register(Request $request){
$request->flash();
$request->validate([
'firstlastname' => 'required|regex:/^(?=\S+(?:\s\S+)+$)[\p{Latin}ŞşÇçÖöÜüıİĞğ\s]{6,60}$/',
]);
if($request->country == "USA"){
$request->validate([
'city' => 'required|exists:city,name',
'state' => 'required|exists:city,name',
]);
}else{
$request->validate([
'city' => 'required|min:2|max:60|regex:/^[\p{Latin}\dŞşÇçÖöÜüıİĞğ\s]{2,60}$/',
'state' => 'required|min:2|max:60|regex:/^[\p{Latin}\dŞşÇçÖöÜüıİĞğ\s]{2,60}$/',
]);
}
}
Bu kadar karmaşadan kurtulmak için aşağıdaki gibi yapmak istersem, nasıl yapabilirim if koşullarımı?
<?php
namespace App\Http\Requests;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Exceptions\HttpResponseException;
class UserRegisterRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'firstlastname' => 'required|regex:/^(?=\S+(?:\s\S+)+$)[\p{Latin}ŞşÇçÖöÜüıİĞğ\s]{6,60}$/',
];
}
}
Aşağıdaki controller dosyamda bir doğrulamadan kurtulduk peki ya diğerlerini nasıl ortadan kaldırabilirim?
public function register(UserRegisterRequest $request){
$request->flash();
// $request->validate([
// 'firstlastname' => 'required|regex:/^(?=\S+(?:\s\S+)+$)[\p{Latin}ŞşÇçÖöÜüıİĞğ\s]{6,60}$/',
// ]);
if($request->country == "USA"){
$request->validate([
'city' => 'required|exists:city,name',
'state' => 'required|exists:city,name',
]);
}else{
$request->validate([
'city' => 'required|min:2|max:60|regex:/^[\p{Latin}\dŞşÇçÖöÜüıİĞğ\s]{2,60}$/',
'state' => 'required|min:2|max:60|regex:/^[\p{Latin}\dŞşÇçÖöÜüıİĞğ\s]{2,60}$/',
]);
}
}
Aklıma gelen yöntem aşağıdaki gibi bir şey fakat ne kadar doğru bir yöntem?
<?php
namespace App\Http\Requests;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Exceptions\HttpResponseException;
class UserRegisterRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
$dogrula['firstlastname'] = 'required|regex:/^(?=\S+(?:\s\S+)+$)[\p{Latin}ŞşÇçÖöÜüıİĞğ\s]{6,60}$/';
if($this->country == "USA"){
$dogrula['city'] = 'required|exists:city,name';
$dogrula['state'] = 'required|exists:city,name';
}else{
$dogrula['city'] = 'required|min:2|max:60|regex:/^[\p{Latin}\dŞşÇçÖöÜüıİĞğ\s]{2,60}$/';
$dogrula['state'] = 'required|min:2|max:60|regex:/^[\p{Latin}\dŞşÇçÖöÜüıİĞğ\s]{2,60}$/';
}
return $dogrula;
}
}