Php 验证时的管腔fatalthrowable错误
我已经为此挣扎了一段时间了。 这是我的密码 问题是,我的脸上出现了一个FatalThrowable错误,并显示以下信息: 对数组上的成员函数参数()的调用 我找不到我做错了什么。我非常感谢你的帮助。 而且,我之前也进行过验证,验证有效:Php 验证时的管腔fatalthrowable错误,php,validation,fatal-error,lumen,Php,Validation,Fatal Error,Lumen,我已经为此挣扎了一段时间了。 这是我的密码 问题是,我的脸上出现了一个FatalThrowable错误,并显示以下信息: 对数组上的成员函数参数()的调用 我找不到我做错了什么。我非常感谢你的帮助。 而且,我之前也进行过验证,验证有效: $this->validate($request, [ 'name' => 'required|unique:developers|max:100' ]); 但这一个的问题是,当验证失败时,我不知道如何捕捉。以这种方
$this->validate($request, [
'name' => 'required|unique:developers|max:100'
]);
但这一个的问题是,当验证失败时,我不知道如何捕捉。以这种方式使用时是否可能捕获验证失败
使用版本:“laravel/lumen framework”:“5.2.*”A
FatalThroTableError
异常是通常由symfony调试错误处理程序引发的低级异常。在lumen中,队列工作者、PhpEngine、控制台内核和路由管道也使用它
确保以下各项
您已将.env.example
复制到.env
如果您使用的是Facades,请确保通过取消对该行的注释,在bootstrap/app.php
中启用了Facades
$app->withFacades()代码>
在内腔5.2.8中,以下任一项均有效
下面将实际返回一个包含错误的有效JSON对象。您没有详细说明用例为什么这还不够。像这样使用validate
调用的好处是它实际上返回一个422
http状态代码,这意味着一个未处理的实体
$app->get('/',函数(Request$Request){
$this->validate$请求[
“名称”=>“必需”
]);
});
使用facade也可以,尽管它返回一个200
状态代码
$app->get('/',函数(Request$Request){
$validator=validator::make($request->only(['name'])[
“名称”=>“必需”
]);
如果($validator->fails()){
return['error'=>“出现了问题”];
}
});
如果您仍然没有正确使用Validator::make
,您可以使用捕获默认验证异常。感觉有点不舒服
$app->get('/',函数(Request$Request){
试一试{
$this->validate$请求[
“名称”=>“必需”
]);
}捕获(\illumb\Validation\ValidationException$e){
//为您的用例做任何您需要做的事情
return['error'=>'我们捕获了异常'];
}
});
您使用的是什么版本的Lumen?“laravel/Lumen framework”:“5.2.*”我下面的答案是5.2。env文件和正面已经准备就绪,没有问题。然后,我用$validator->fails()尝试了第二个示例,它起了作用。我注意到的一点是,它与我的完全相同,但有一点不同,那就是只接受一个请求变量。因此,我在$request->all()上得到了错误。我真想知道为什么不能这样做?还有一个问题,在您的示例中,验证在路由中,我的控制器中有我的验证,这是一个问题吗?这很奇怪,$request->all()和$request->only(['name',names'])都将返回数组。但是,$request->all()使用array\u replace\u recursive并将输入与上载的文件相结合。那么将验证移动到控制器上就没有区别了,它将使用相同的请求对象。
$this->validate($request, [
'name' => 'required|unique:developers|max:100'
]);