Laravel 5.8自定义表单请求无法正常工作?

时间:2019-07-13 21:07:16

标签: php laravel laravel-5 laravel-5.8 laravel-request

我使用以下代码创建了一个名为ClientStoreRequest的自定义表单请求:

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class ClientStoreRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
        // return  $this->user()->can('add-clients');
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'name' => 'required|unique:clients|max:255',
            'website' => 'required|url',
            'street' => 'required',
            'town' => 'required',
            'postcode' => 'required|max:8',
            'county' => 'required',
            'country' => 'required'
        ];
    }
}

然后我修改了ClientController的{​​{1}}方法,使其看起来像这样:

store

因此,提交表单后,它将杀死页面并在屏幕上打印 /** * Store a newly created resource in storage. * * @param ClientStoreRequest $request * @return \Illuminate\Http\Response */ public function store(ClientStoreRequest $request) { dd(1); } 。当我使用1时,它只会将我发送回我提交表单的页面,没有错误,也没有ClientStoreRequest $request的结果,但是当我使用dd(1)时,它会打印Request $request进入屏幕。

我错过了一些明显的东西吗?我已经followed the docs来做这个。

编辑:我正在使用资源控制器,因此路由为1

1 个答案:

答案 0 :(得分:0)

有点尴尬,但这纯粹是由于开发人员的错误。自定义表单请求实际上是正确运行的……只是我的规则引用了我忘记输入表单中的一个字段,因此不会在屏幕上显示错误!一旦我回应了通常的$ errors数组,我就可以看到我的错误-我会怪罪于深夜编码!