laravel 5.5的问题
如果我在formRequest类中使用all()
方法,它会抛出反射异常
ReflectionException
Class App\Http\Requests\CashDepositRequest does not exist
但是当我删除all()
方法时,它运行良好。
这不是laravel 5.4中的问题
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class CashDepositRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'amount' => 'bail|required|numeric',
'gateway' => 'bail|required|exists:gateways,id',
];
}
//This method causes reflection exception
public function all()
{
$this->attributes = parent::all();
$this->attributes['amount'] = $this->attributes['amount'];
return $this->attributes;
}
}
是否还有其他方法可以修改laravel 5.5中formRequest类的用户输入?
答案 0 :(得分:1)
首先,all()
不是属性,而是类方法。
第二件事是这种方法的签名。父类中的签名如下所示:
public function all($keys = null)
所以你应该在子类中将它更新为相同的。
如果您从upgrade guide中的先前版本升级,则可以阅读:
如果要覆盖Illuminate \ Http \ Request类的all方法,则应更新方法签名以反映新的$ keys参数:
这可能是导致问题的原因。