Как проверить данные, закодированные с помощью formData

Я использую vue с laravel. У меня есть регистрационная форма клиента. В форме есть данные (имя, адрес) и фото клиента.

Я упаковываю все в объект formData, чтобы отправить изображение и данные на сервер.

Мое мнение:

let formData = new FormData();
formData.append("image", this.data.logo);

formData.append("data", JSON.stringify(this.data));

axios.post(`urlServer`, formData).then(response => {

...

}).catch((error) =>{ });

в моем ларавеле

public function update(Request $request){

   $array =  $request->all();

   $request->validate([ //not working
      'name' => 'required'
   ]);


}

Как мне проверить данные? Данные закодированы в моем laravel. В моем сервисе они используют json_decode ($ array ['data'], true);

В моем контроллере я хочу использовать что-то вроде:

$request->validate...

Кто-нибудь знает, как создать валидацию?


person Renato Souza de Oliveira    schedule 14.08.2018    source источник
comment
не могли бы вы показать мне, что вы получили в $array переменной?   -  person imrealashu    schedule 14.08.2018


Ответы (1)


Запрос не имеет функции validate.

Один из способов подтвердить ваш запрос:

<?php

...

use Validator;

class Controller extends BaseController
{
    ...
    public function update(Request $request){

        $array =  $request->all();
        $rules = array(
            'name' => 'required|string',
            'address' => 'required|strgin',
            'photo' => 'image'
        );

        $validator = Validator::make($array, $ules);
        if ($validator->fails()) {
            return $this->setStatusCode(400)->respond([
                'error' => [
                    'message' => $validator->messages(),
                    'status_code' => $this->getStatusCode()
                ]
            ]);
        }
        ...
        // store your data...
     }
}

Также проверьте доступные правила проверки

person Christos Papoulas    schedule 14.08.2018