是否可以在没有依赖注入的情况下验证FormRequest?

时间:2017-07-03 14:12:56

标签: php laravel laravel-5

我正在使用FormRequest来验证删除请求,但我不需要访问控制器内部的请求。我只需要它进行验证。

我发现未使用的变量令人讨厌,但我在the docs中看不到任何暗示我可以在类上调用任何内容来验证它的内容。

表格请求:

class DeleteList extends FormRequest
{
    protected $errorBag = 'delete_list';

    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'confirm' => 'required|accepted'
        ];
    }
}

控制器:

public function postDelete(DeleteList $request, ListService $listService, $site, $list)
{
    $listService->delete($site, $list);
    return redirect()->route('site.lists', ['site' => $site]);
}

1 个答案:

答案 0 :(得分:0)

你可以这样做:

public function postDelete(ListService $listService, $site, $list)
{
    $this->validate(request(), ['confirm'=>'required|accepted']);

    $listService->delete($site, $list);
    return redirect()->route('site.lists', ['site' => $site]);
}

但我个人更喜欢你的解决方案,即使它意味着有一个未使用的变量。