Как я могу выполнить процесс проверки в моем php коде ниже с помощью laravel validate?
$request->validate([
'city' => '??????????????'
]);
<?php
function exist_city($post_array = ["country" => "US", "city" => "Angels","state" => "uncle"]){
if($post_array['country'] == "US"){
$database_query_result = [
["city" => "mardiv"],
["city" => "Angels"],
["city" => "sardan"],
];
if(in_array($post_array['city'],$database_query_result)){
return "its okay city";
}else{
return "its wrong city";
}
}else{
if(strlen($post_array['city']) > 2){
return "its okay city";
}else{
return "its wrong city";
}
}
}
Надеюсь, я смогу объяснить. У меня не очень хороший английский sh.
$request->validate([
'country' => 'required|min:2|max:2|exists:country,country_code',
'city' => 'required_if:country,US|exists:city,name',
]);
Например, если в приведенном выше коде указан код страны США, требуется указать город и есть ли имя в базе данных?
проверяет, есть ли имя в базе данных, даже если страна не США?
Думаю, мне следует сделать следующее? Есть другой способ?
if($request->country == "US"){
$request->validate([
'city' => 'required_if:country,US|exists:city,name',
'state' => 'required_if:country,US|exists:city,name',
]);
}else{
$request->validate([
'city' => 'required|min:2|max:60|regex:/^(?=\S+(?:\s\S+)+$)[\p{Latin}ŞşÇçÖöÜüıİĞğ\s]{2,60}$/',
'state' => 'required|min:2|max:60|regex:/^(?=\S+(?:\s\S+)+$)[\p{Latin}ŞşÇçÖöÜüıİĞğ\s]{2,60}$/',
]);
}