У меня есть правило по умолчанию проверки в контроллере Laravel:Как настроить собственное правило валидации в контроллере Laravel?
$validator = Validator::make($request->all(), [
'email' => 'required|email',
'phone' => 'required|numeric',
'code' => 'required|string|min:3|max:4',
'timezone' => 'required|numeric',
'country' => 'required|integer',
'agreement' => 'accepted'
]);
Я попытался это, но не знаю, как передать некоторые параметры внутри функции:
public function boot()
{
Validator::extend('phone_unique', function($attribute, $value, $parameters) {
return substr($value, 0, 3) == '+44';
});
}
Как я могу, насколько это проверка по собственному правилу ? Например мне нужно проверить concatination входов:
$phone = $request->code.' '.$request->phone
После проверки, если $phone
есть существует в базе данных
Я хочу использовать этот метод:
> $validator->sometimes('phone', 'required|alpha_dash|max:25', function
> ($input) {
> if ((Auth::user()->phone == $input->phone)) {
> return false;
>
> } else {
>
> $t = User::where("phone", $input->phone)->get();
> return ($t->count() > 0) ? false : false;
>
> }
> });
Это не работает в любых условиях (True, False)
внутри.
Я добавил новую проверку nickname_unique
:
$validator = Validator::make($request->all(), [
'email' => 'required|email',
'code' => 'required|string|min:3|max:4',
'phone' => 'required|phone_unique',
'timezone' => 'required|numeric',
'country' => 'required|integer',
'nickname' => 'required|alpha_dash|max:25',
'agreement' => 'accepted'
], [
'phone_unique' => 'Phone already exists!',
'nickname_unique' => 'Nickname is busy!',
]);
Это не работает, даже не называйте правило проверки ниже Previos:
Validator::extend('nickname_unique', function ($attribute, $value, $parameters, $validator) {
dd("Here");
});
Можете ли вы объяснить немного, какой тип проверки вам нужно? –
У меня есть два входящих параметра: 'code' и' phone'. Мне нужно проверить как в одной функции проверки, так и выполнить запрос к БД для сравнения кода, телефона с существующим полем в db – dsfsddfsdfsf
Я отправил ответ, пожалуйста, посмотрите! –