Как создать Ajax-запрос в валидаторе Bootstrap, используя валидацию Laravel?

Я создаю форму с помощью загрузчика валидатора. И я выполняю проверку с использованием средства проверки начальной загрузки (клиент) и проверки правильности Laravel (сервер). Моя проблема в том, что я хочу выполнить ajax-запрос к laravel, чтобы проверить доступность имени пользователя.

В Laravel у нас есть такой тип проверки:

'username'              =>  'required|min:6|max:15|unique:users',

Чтобы проверить доступность имени пользователя. Теперь я хочу включить этот тип проверки в валидатор начальной загрузки.

username: {
    validators: {
        notEmpty: {
            message: 'The username is required and cannot be empty'
        },
        stringLength: {
            min: 6,
            max: 15,
            message: 'The username must be more than 6 and less than 15 characters long'
        },
        regexp: {
            regexp: /^[a-zA-Z0-9_\.]+$/,
            message: 'The username can only consist of alphabetica, number, dot and underscore'
        },
        remote: {
            url: '' /*** how can I perform laravel validation with this?
            message: 'The username is not available'
        }
    }
},

Как я могу это сделать? Нужно ли создавать специальный помощник для этого типа проверки? Или я могу интегрировать проверку Laravel с этим?

1 ответ

Хорошо, мне удается решить эту проблему, создав другую функцию в моем контроллере. Вот что я сделал:

remote: {
    url: "{{ URL::to('/checkUsername') }}",
    data: function(validator) {
        return {
            username: validator.getFieldElements('username').val()
        }
    },
    message: 'The username is not available'
}

В моем контроллере у меня есть это:

public function checkUsernameAvailability() {

    $user = DB::table('authors')->where('username', Input::get('username'))->count();

    if($user > 0) {
        $isAvailable = FALSE;
    } else {
        $isAvailable = TRUE;
    }

    echo json_encode(
            array(
                'valid' => $isAvailable
            ));

}

Тогда это все.:)

Другие вопросы по тегам