php - Laravel 验证错误未显示,但它们确实显示在 422 错误中
问题描述
我有一个简单的网络界面,我可以在其中为交易所的个人加密货币交易选择特定市场、价格、目标和止损。
我添加了一些默认的 laravel 验证规则,其中一些会像应有的那样显示在 web 界面上,但其中一个特别是在它触发时不会,因为当我检查422
POST
错误时,它确实会显示在响应中。
此处表格显示错误,止损部分除外,但止损错误未显示在 Web 界面上:
我已将规则简化为仅具有“要求”用于测试目的,并且使用更多规则也不起作用。规则:
'market' => 'required',
'trade_value' => 'required|numeric|min:10',
'limit-price' => 'sometimes|min:1|numeric',
'stop-price' => 'required',
来自 422 POST 的返回响应(laravel 创建这个?):
{
"message":"The given data was invalid",
"errors":{
"market":[
"The market field is required."
],
"limit-price":[
"The limit-price must be at least 1.",
"The limit-price must be a number."
],
**"stop-price":[
"The stop-price field is required."
]**
}
每个请求的表单代码(我删除了一些不涉及主题的 div):
<form method="POST" action="/trades" accept-charset="UTF-8" novalidate="" class="ajax-form"><input name="_token" type="hidden" value="sdgsdge563456">
<!-- Default box -->
<div class="card ">
<div class="card-header with-border" style="display:none;">
<div class="float-left">
</div>
<div class="card-tools float-right">
</div>
</div>
<div class="card-body">
<div class="row">
<div class="col-12">
<div class="form-group required-field "><label for="market">Market</label><select class="form-control " id="market" name="market"><option selected="selected" value="">Select Market ...</option><option value="btc-perpetual">BTC-PERPETUAL</option><option value="eth-perpetual">ETH-PERPETUAL</option></select></div>
</div>
</div>
</div>
<!-- /.box-body -->
<div class="card-footer" style="display:none;">
</div>
<!-- /.box-footer-->
</div>
<!-- /.box -->
<!-- Default box -->
<div class="card ">
<div class="card-header with-border" style="display:none;">
<div class="float-left">
</div>
<div class="card-tools float-right">
</div>
</div>
<div class="card-body">
<div class="row">
<div class="col-12">
<div class="form-group required-field "><label for="trade_value">Trade Value</label><div class="input-group "><input class="form-control " placeholder="Trade Value" id="trade_value" name="trade_value" type="number" value="10"><div class="input-group-addon input-group-append"><div class="input-group-text">USD</div></div></div></div>
</div>
</div>
</div>
<!-- /.box-body -->
<div class="card-footer" style="display:none;">
</div>
<!-- /.box-footer-->
</div>
<!-- /.box -->
<!-- Default box -->
<!-- /.box -->
<!-- Default box -->
<div class="card ">
<div class="card-header with-border" style="display:none;">
<div class="float-left">
</div>
<div class="card-tools float-right">
</div>
</div>
<div class="card-body">
<div class="entrytype entrylimit">
<div class="row">
<div class="col-12">
<div class="form-group required-field "><label for="limit-price">Price</label><div class="input-group "><input class="form-control " placeholder="Price" id="limit-price" name="limit-price" type="number"><div class="input-group-addon input-group-append"><div class="input-group-text">USD</div></div></div></div>
</div>
</div>
</div>
</div>
<!-- /.box-body -->
<div class="card-footer" style="display:none;">
</div>
<!-- /.box-footer-->
</div>
<!-- /.box -->
</form>```
解决方案
我自己解决了这个问题。
基本上表单开始代码应该在 3 列 div 之前,否则 laravel 会在第一个 div 之后停止验证。
推荐阅读
- c++ - 将文本文件数据读入字符数组时提取运算符的歧义
- node.js - 会话 ID 不适用于 Express
- html - 网站在 Chrome 和 Firefox 上看起来更小,在 Opera 上看起来更大
- android - 当未在任何布局中指定时,preloaded_fonts 不能以编程方式工作
- nasm - MULX 导致 NASM 程序崩溃
- ruby-on-rails - 如何在 Mobility gem 中获取没有区域设置后缀的更改属性?
- python - 使用python库填充图像中的穿孔形状?
- c - 我的总面积和面积公式没有计算
- jquery - 按字母顺序在列表项内排序
- swift - UIActivityIndicator 需要几秒钟才能被解除