Laravel 5.3 - 类型在方法中提示两个不同的请求类

时间:2016-11-24 13:16:31

标签: php request laravel-5.3

我正在开发一个Web应用程序,我遇到了一个需要验证表单输入的问题。我根据laravel文档创建了一个验证类,并在我的方法中键入了类。问题是我已经在我的方法中使用了Illuminate \ Http \ Request类提示,并且在刷新页面时用同一方法提示我的验证类会显示“禁止”消息。

验证类

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

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

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'price' => 'required|numeric',
            'deposit' => 'required|numeric',
            'months' => 'required|numeric',
            'interest' => 'required|numeric',
        ];
    }
}

控制器

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Cookie\CookieJar;
use App\Http\Requests\ValidateCalculatorValues;

public function index($id, Request $request, ValidateCalculatorValues $calculatorInput, CookieJar $cookieJar)
{
    // Code goes here
}

我该怎么做才能使它有效?我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

正如评论中提到的phobia82,我需要将验证类的authorize方法设置为true。

但是因为表单发布到表单所在的同一个url上,所以它创建了一个无限重定向循环,因为我的验证规则已设置为所有字段都是必需的。看完文档后,我改变了#34; required&#34;到&#34;填充&#34;这解决了重定向循环。

答案 1 :(得分:0)

忽略参数中的Request $request,因为ValidateCalculatorValues现在将处理验证。

public function index($id, ValidateCalculatorValues $calculatorInput, CookieJar $cookieJar)
{
    $allYourInputs = $calculatorInput->all();
}

或者您可以为更多约定

执行此操作
public function index($id, ValidateCalculatorValues $request, CookieJar $cookieJar)
{
    $allYourInputs = $request->all();
}