換了新工作後才開始接觸 Laravel 這套 PHP framework,學習的過程碰到不少問題,跟之前慣用的 CodeIgniter 相比,Laravel 引了很多新觀念。
這天在使用 Laravel 內建的 Validation 作表單檢查的時候,發現 regex 規則怎麼寫都不會過….. (怒
規則如下:
<?php
$rule = array(
'mode' => 'required|regex:/^(typeA|typeB)$/'
);
執行時會一直收到如下的錯誤訊息…
ErrorExceptionpreg_match(): No ending delimiter '\/' found
苦惱了十分鐘後才在文件上看到這段話…
Note: When using the
regexpattern, it may be necessary to specify rules in an array instead of using pipe delimiters, especially if the regular expression contains a pipe character.
因為 pipe (|) 衝突的關係… WTF…
所以要改寫成 array 的形式
<?php
$rule = array(
'mode' => array('required', 'regex:/^(typeA|typeB)$/')
);
搞定。
Leave a Reply