проверить и сохранить массив объектов laravel 6, vue, axios - PullRequest
0 голосов
/ 25 апреля 2020

vue функция:

        sendData() {
        this.isLoading = true;
        const postData = {
            data: this.items,

        };
        var self = this;
        axios.post(this.postUrl, postData).then(function (response) {
            console.log(response.data);

           self.isLoading = false;
        });

        this.items = [];
    },

Laravel контроллер:

    public function store(request $request)
{

    foreach ($request->data as $data) {

        $serie = [];

        $serie = ['imei' => $data['serie']];

        $imei = new Imei([
            'imei' => $data['serie'],
            'status_id' => 1,
            'sucursal_id' => $data['sucursal'],
            'equipo_id' => $data['equipo']

        ]);

        $validator = Validator::make($serie, [
            'imei' => 'unique:imeis,imei|digits:15',



        ]);
        if ($validator->fails()) {

// Here I need to build the response of every imei with its validation error

        } else {

            $imei->save();


        }


    }


    return >Here I want to return the errors back to vue 
}

мое vue приложение отправляет на laravel через топор ios массив объектов, который выглядит следующим образом [{imei: xxxx, sucursal_id ...}, {imei: xxxx, sucursal_id ...}] Мне нужно проверить, что imei уникален и сохранить его, и если ошибки возвращают ошибки таким же образом [{imei: xxxx, errorMsg: 'уже существует в БД'}]. но я не могу найти правильный способ сделать это.

1 Ответ

0 голосов
/ 25 апреля 2020

По сути, вы хотите настроить свой пакет ошибок, верно? попробуйте это. Добавьте это в ваше состояние отказа. Дайте мне знать, если это работает.

$err = [{imei:xxxx,errorMsg: 'already exist in DB'}]; 

foreach ($validator->errors()->toArray() as $error)  {
    foreach($error as $sub_error) {
           array_push($err, $sub_error);
        }
  }
return ['errors'=>$err];

...