php - 自定义 Laravel API 验证响应

标签 php laravel validation laravel-request

我正在使用 Laravel 构建一个 REST API,想知道是否可以在验证时自定义 API 响应。

例如,我在一个 Laravel 请求中有一个验证规则,说一个特定的字段是必需的。

public function rules() {
   return [
       'title'=>'required|min:4|max:100',
   ];
}

因此,对于此验证,我在 Postman 中收到这样的错误消息

{
    "title": [
        "Please enter Ad Title"
    ]
}

我想要的是像这样自定义该响应..

{
    "success": false,
    "message": "Validation Error"
    "title": [
        "Please enter Ad Title"
    ]
}

因此,错误更加具体和清晰。

那么,如何实现呢?

谢谢!

最佳答案

为名为 messagesFormRequest 类提供一个自定义函数,并返回一组验证消息,这些消息使用 点符号 映射到特定的特定消息规则:

public function messages()
{
    return [
        'title.required' => 'Please enter an Ad title',
        'title.min' => 'Your title must be at least 4 character'
    ]
}

返回success 消息是徒劳的,就好像它失败了一样,无论如何在执行ajax 请求时都会抛出422 错误代码。

至于 message 属性,您将收到它作为有效负载的一部分,其中实际的验证错误将包含在对象中。

关于php - 自定义 Laravel API 验证响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48156031/

相关文章:

php - 如何使用 JavaScript 在 PHP GET 变量上运行 if 语句?

php - 如何在symfony2中添加自己的自定义服务容器标签,以及如何获取标签服务?

php - PDO 数组和 array_unique

php - laravel 如何找到模型与其在数据库中的表之间的连接

php - Laravel:创建了一个服务但找不到类

PHP/SQL/Mysql/phpmyadmin - 外键

mysql - 按降序顺序从 Sentry 获取用户记录

validation - JSF Validator 与字符串的平等比较

ruby-on-rails - rails 3 验证字符串

javascript - 在没有服务器端的客户端进行Java表单验证-安全吗?