Проверка массива Ajax в laravel

Я отправляю данные из формы. Я хочу проверить этот массив в контроллере и отправить ответ json на вызов ajax. Не могли бы вы помочь мне с этим.

Это мой код функции контроллера, в который я отправляю форму.

public function submit()
{

    $data=array(
        'user_firstname'=>$_POST['user_firstname'],
        'user_lastname'=>$_POST['user_lastname'],
        'user_phone'=>$_POST['user_phone'],
        'email'=>$_POST['user_email'],
        'username'=>$_POST['user_username'],
        'password'=>$_POST['user_password'],

    );
     $validation=validator($_POST);
    if ($validation->passes()){

      return "Validation passes";

    }
    else{
        return "Validation failed";
    }
}

 protected function validator(array $data)
{
    return Validator::make($data, [
        'user_firstname' => 'required|string|max:255',
        'user_lastname' => 'required|string|max:255',
        'user_phone' => 'required|string|max:15|unique:users',
        'email' => 'required|string|email|max:255|unique:users',
        'username' => 'required|string|max:255|unique:users',
        'password' => 'required|string|min:6|confirmed',
    ]);
}

Это моя функция javascript.

 if (currentTab==2)
{

$.ajax({
      url: "register", 
      type: "post",
      headers: {
          'X-CSRF-TOKEN': $('meta[name = "csrf-token"]').attr('content')
      },
      data: {'user_firstname':user_firstname,'user_lastname':user_lastname,'user_phone':user_phone,'user_email':user_email,'user_username':user_username,'user_password':user_password},
      success: function(result){
         console.info(result);
        }
    });

}

Я хочу проверить массив и вернуть все ошибки в json, а затем мой валидатор в том же контроллере.

Пожалуйста, предложите мне, есть ли другой способ проверки данных

Проверка проходит все тесты даже с пустым массивом

Поместите этот код в другую часть: $error = true; $responsecode = 400; $result["error_message"] = ""; if (sizeof($validator->errors()->getMessages()) > 0){ $messages = $validator->errors()->getMessages(); foreach ($messages as $key => $value) { $result["error_message"] .= $value[0] .' '; } }

Hiren Gohel 16.03.2018 09:55

Я не знаю, в чем проблема, но он проходит все проверочные тесты

Pranav Mandlik 16.03.2018 09:55

Во-первых, вы хотите распечатать все ошибки или что-то еще?

Hiren Gohel 16.03.2018 09:56

да, я хочу распечатать ошибки

Pranav Mandlik 16.03.2018 09:57

Тогда прочтите мой первый комментарий! Я дал для этого код! Если вы не понимаете, дайте мне знать.

Hiren Gohel 16.03.2018 09:57

да, но моя проверка не работает правильно

Pranav Mandlik 16.03.2018 09:58

Вы имеете в виду, что он не проверяется, если вы отправляете пустые данные запроса?

Hiren Gohel 16.03.2018 09:59

нет нет, когда я ввожу существующий идентификатор электронной почты или существующее имя пользователя, он все еще проходит тест и в правилах проверки я написал уникальный

Pranav Mandlik 16.03.2018 10:00

Попробуйте вот так: 'email' => 'required|string|email|max:255|unique:users,email',

Hiren Gohel 16.03.2018 10:02

он все еще проходит проверку, что-то не так в реализации

Pranav Mandlik 16.03.2018 10:05

или есть другой способ

Pranav Mandlik 16.03.2018 10:05

Попробуйте только это по электронной почте: 'email' => 'required|unique:users,email'

Hiren Gohel 16.03.2018 10:06

такая же ошибка отображается

Pranav Mandlik 16.03.2018 10:08
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
13
680
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Удалите свой код, и вы можете попробовать этот код:

public function submit(Request $request)
{
   $error = false; 
   $result = array();
   $responsecode = 200;

   $validator = Validator::make($request, [
            'user_firstname' => 'required|string|max:255',
            'user_lastname' => 'required|string|max:255',
            'user_phone' => 'required|string|max:15|unique:users',
            'email' => 'required|email|unique:users,email',
            'username' => 'required|string|max:255|unique:users,username',
            'password' => 'required|string|min:6|confirmed',
   ]);

   if (!empty($request) && !($validator)){
        try {
            $result = 'Validate!!';     //OR do more your stuff here
        }
        catch(\Exception $e){
            $error = true;
            $responsecode = 500; 
            $result["error_message"] = $e->getMessage();
        }
    } else {
        $error = true;
        $responsecode = 400;
        $result["error_message"] = "";
        if (sizeof($validator->errors()->getMessages()) > 0){
            $messages = $validator->errors()->getMessages();
            foreach ($messages as $key => $value) {
                 $result["error_message"] .= $value[0] .' ';
            }
        }
     }
}

Я использовал этот формат каждый раз, попробуйте.

Надеюсь, это поможет вам !!

Большое спасибо, человек работал как шарм, большое спасибо, ты спас мою работу

Pranav Mandlik 16.03.2018 10:35

Рад, что помогло !! :) Это формат / структура кода для сохранения данных и для api с каждым кодом ответа!

Hiren Gohel 16.03.2018 10:37

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