【问题标题】:how to fail Laravel validate if extra param pass to it?如果额外的参数传递给它,如何使 Laravel 验证失败?
【发布时间】:2018-10-20 08:14:58
【问题描述】:

我正在使用 Laravel 验证来验证用户请求。 这对我有用,但如果用户发送的参数超过规则中提到的参数,我需要验证失败。 例如,如果规则是这样的:

['id'=>'required|integer']

如果用户发送任何额外的东西

'name'=>'foo'

验证应该失败并且错误消息类似于:

the name param is not allowed.

【问题讨论】:

  • 也看到这个aaronsaray.com/2017/laravel-validate-parameter-not-present,你这样做的目的是什么?
  • 目的是用户不要向api发送任何额外的键值参数。
  • 在你的应用中,如果有多余的key-value但是不会被保存可以吗?或者您真的需要在发生错误时返回错误?
  • 如果发生错误我需要返回。
  • 我看不出这个有什么用?如果他们将额外的参数传递给 API,它将像任何其他 API 一样被忽略?

标签: php laravel validation rule


【解决方案1】:

您可以编写自定义验证规则,也可以这样做

if(!in_array("name", $request->all())){
    return redirect()->back()->with('errorMessage','the name param is not allowed.')->withInput();
}

并在刀片文件中显示错误消息

@if (session('errorMessage'))
    {{ session('errorMessage') }}
@endif

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-06
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 1970-01-01
    • 2012-09-01
    • 2020-07-19
    • 2016-02-16
    相关资源
    最近更新 更多