我现在已经挣扎了一段时间了。 这是我的代码。
public function store(Request $request) { $validator = Validator::make($request->all(), [ 'name' => 'required|max:100' ]); if ($validator->fails()) { //do something } }
问题是我的脸上有一个FatalThrowableError,并带有以下消息:
调用数组
上的成员函数parameter()
我无法找到我做错的事。我在这里感谢一些帮助。 此外,我之前已经进行了此验证:
$this->validate($request, [
'name' => 'required|unique:developers|max:100'
]);
但是这个问题是,我不知道在验证失败时如何捕获。以这种方式使用它是否有可能捕获验证失败?
使用版本:" laravel / lumen-framework":" 5.2。*"
答案 0 :(得分:2)
FatalThrowableError
异常是symfony debug ErrorHandler
通常抛出的低级异常。在流明中,队列工作者,PhpEngine,控制台内核和路由管道也使用它。
确保以下
.env.example
复制到.env
bootstrap/app.php
内启用它。 $app->withFacades();
内部Lumen 5.2.8以下任何一种都可以使用。
以下实际上将返回带有错误的有效JSON对象。您没有详细说明您的用例为什么这还不够。使用这样的validate
调用有什么好处,它实际上会返回一个422
http状态代码,这意味着一个未经处理的实体。
$app->get('/', function (Request $request) {
$this->validate($request, [
'name' => 'required'
]);
});
使用外观也可以,但是会返回200
状态代码。
$app->get('/', function (Request $request) {
$validator = Validator::make($request->only(['name']), [
'name' => 'required'
]);
if ($validator->fails()) {
return ['error' => 'Something went wrong'];
}
});
如果您仍未使用Validator::make
,则可以使用默认验证例外。感觉有点哈哈。
$app->get('/', function (Request $request) {
try {
$this->validate($request, [
'name' => 'required'
]);
} catch (\Illuminate\Validation\ValidationException $e) {
// do whatever else you need todo for your use case
return ['error' => 'We caught the exception'];
}
});