我正在开发一个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
}
我该怎么做才能使它有效?我错过了什么吗?
答案 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();
}