【问题标题】:Laravel Custom Response Message For RequestLaravel 请求的自定义响应消息
【发布时间】:2017-05-23 10:15:45
【问题描述】:

我通过端点与我的 laravel 服务器对话。我不使用 Laravel View,所以我无法访问它的会话。

当一个必需的请求进来时,我需要每个参数返回一个响应 ie401 等?可能吗?

php artisan make:request FooBar

内部FooBar

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

public function messages()
{
    return [
        'title.required' => abort(401, sorry),
        // and others...
    ];
}

如果我应该使用字符串消息而不是 abort() laravel 重定向而没有响应,我使用邮递员并且我看到状态 200。如何实现我想要的?我想通过响应自定义每个必需的参数。

【问题讨论】:

  • 使用 FromRequest 是不可能的。您可以在控制器中创建一个自定义验证器,然后遍历错误并根据字段做出相应的响应。
  • @Sandeesh 哦,从来不知道。谢谢

标签: php laravel laravel-5


【解决方案1】:

你可以做这样的事情。接近您想要的,但您无法检查特定规则错误。只能检查字段是否未通过验证。

$validator = \Validator::make($request->all(), [
    'subtitle' => 'required|max:255',
    'title'    => 'required|max:255',
]);

$errors = $validator->errors();

if ($errors->has('title')) {
    abort(401, 'sorry');
}

【讨论】:

  • @Sylar 取决于您希望如何处理验证失败。错误数组将包含所有失败规则的字段名称和消息。因此,如果您想中止特定字段,则需要使用has 来检查该字段是否失败。
  • 但是如果title 存在,你想中止。我不想中止。仅在标题不存在时中止
  • @Sylar 这是错误数组。它包含输入中不存在的项目的字段名称。所以不要混淆。因此,如果错误数组中存在标题,则意味着它没有作为输入提供。
  • 啊啊啊啊!明白了。谢谢
猜你喜欢
  • 2016-07-10
  • 2012-02-16
  • 2022-10-24
  • 2020-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-29
  • 2018-11-13
相关资源
最近更新 更多