使用JSON进行Laravel验证错误响应

时间:2016-07-15 13:07:55

标签: json validation laravel-5.2

我尝试创建一些API并添加自定义验证:

控制器:

use App\Http\Requests\Penggunarequest;

class LogRegAPI extends Controller {  


    public function register(Penggunarequest $penggunarequest) {
        $input = $penggunarequest->all();
        $nama = $input['name'];
        $alamat = $input['address'];
       //other logical thing  

验证请求:

namespace App\Http\Requests;

use App\Http\Requests\Request;

class Penggunarequest extends Request
{
    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            'name' => 'required|String',
            'address' => 'required|String',                
        ];
    }
}

如果我使用浏览器通过控制器发送帖子数据,如果有错误响应,它将重定向到表单帖子,但我想通过android发布,evertything工作正常,除非它有错误响应它显示302.如何制作自定义JSON中显示错误响应?

2 个答案:

答案 0 :(得分:2)

我刚刚找到答案,我只需要覆盖请求类。通过在我的表单请求验证中添加波纹管代码

public function wantsJson()
    {
        return true;
    }

答案 1 :(得分:0)

https://laracasts.com/series/digging-in/episodes/8就是一个很好的例子。您可以将验证规则放在模型中,然后在控制器上输入如下内容:

            $this->model->setRawAttributes($request->all());

            if (!$this->model->save()) {
                return $this->response($this->model->getErrors(), 409);
            }

            return $this->model;

然后,您可以创建一个中间件控制器,并检查它是否是JSON标头响应,并为其动态转换为JSON。这样,验证链接到数据,控制器也不必关心JSON。