我通过播种机创造了很多问题。我正在做的格式是这样的播种验证阵列
DB::table('questions')->insert([
'name' => 'questionOne',
'rule' => 'nullable|max:50|regex:/(?=.)^\£?(([1-9][0-9]{0,2}(,[0-9]{3})*)|[0-9]+)?(\.[0-9]{1,2})?$/'
]);
由此我提供了一个字段名和一个验证规则。我注意到,应用上述规则时,验证会失败,说明
的preg_match():没有结束符“/”发现
我做了一些研究,并发现了
使用正则表达式模式时,可能需要指定 数组中的规则而不使用管道分隔符,尤其是在常规的 表达式包含管道字符时。
根据建议,我改变了我的播种机这个
DB::table('questions')->insert([
'name' => 'questionOne',
'rule' => ['nullable|max:50|regex:/(?=.)^\£?(([1-9][0-9]{0,2}(,[0-9]{3})*)|[0-9]+)?(\.[0-9]{1,2})?$/']
]);
然而,当我尝试上述种子,我得到一个数组到字符串转换错误。我申请验证的方法是像这样
$rules = [];
$questions = Question::all();
foreach ($questions as $question) {
if (!empty($question->rule)) {
$rules["questions.{$question->id}"] = $question->rule;
}
}
$this->validate($request, $rules);
有什么办法,我可以得到上述正则表达式的工作?有一点要注意的是,只有少数几个问题有这个正则表达式,如果这很重要的话?
由于