我有一个允许添加新行的模板。示例:我想一次将多个产品添加到商店,所以我可以通过复制自己的那些行一次添加所有产品。问题是我需要验证这些字段,它们都是必填项。我正在实施,以便我可以逐步完成每个步骤,并使其成为必修课。但是,我遇到另一个问题,Laravel告诉我我的字段为空,但事实并非如此。我想知道我该怎么解决,谢谢。
这是我给FormRequest的代码
public function rules()
{
$rules = [];
foreach($_POST['esp'] as $key => $esp){
$name_field = "esp[" . $key . "]" . "[esprqe]"; //name of my field is complicated even as it is time based
$rules[$name_field] = 'required';
}
return $rules;
}
我的模板很大,不需要显示。
我收到的消息:esp [1553533952015] [esprqe]:[“必填esp [1553533952015] [esprqe]字段。”]
我的输入不为空,我不知道是什么问题
答案 0 :(得分:0)
您声明字段“ esprqe
”的名称是基于时间的并且非常复杂。这可能是造成您问题的原因。
esp['.$key.']
字段可能很好,因为该字段是从您的表单中转移过来的。但是,如果esprqe
中的值是在上面的服务器端代码中生成的(我不知道,您还没有提供该字段的生成方式),以及规则是否在寻找该字段与表单上基于时间的生成字段 匹配...这些值将不匹配,并且您的方法中将包含一个非值。
这很可能会生成一条消息
[“必填esp [1553533952015] [esprqe]字段。”]
如果这是您的问题,则可以通过首先为esprqe
字段创建一个简单编号的索引进行测试,该索引在形式和方法上都将匹配。如果成功,则可以使用 common 生成器来增加复杂性,以便规则部分确切知道该字段的名称是什么。表单创建和规则创建之间的时间并不相同-也许是失败的原因。
答案 1 :(得分:0)