如何验证使用formData编码的数据

时间:2018-08-14 01:17:19

标签: laravel laravel-5 vue.js form-data

我正在与laravel一起使用Vue。 依我看,我有客户登记表。表单中包含客户的数据(名称,地址)和照片。

我将所有内容打包在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...

有人知道如何创建验证吗?

1 个答案:

答案 0 :(得分:0)

该请求没有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...
     }
}

还要检查可用的validation rules