我通過播種機創造了很多問題。我正在做的格式是這樣的播種驗證陣列
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);
有什麼辦法,我可以得到上述正則表達式的工作?有一點要注意的是,只有少數幾個問題有這個正則表達式,如果這很重要的話?
由於