Roo*_*eyl 3 php validation laravel laravel-4
我通过创建一个类创建了一个自定义错误函数;
<?php
class CoreValidator extends Illuminate\Validation\Validator
{
public function validatePostcode($attribute, $value, $parameters = null)
{
$regex = "/^((GIR 0AA)|((([A-PR-UWYZ][0-9][0-9]?)|(([A-PR-UWYZ][A-HK-Y][0-9][0-9]?)|(([A-PR-UWYZ][0-9][A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY])))) [0-9][ABD-HJLNP-UW-Z]{2}))$/i";
if(preg_match($regex ,$value)) {
return true;
}
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我在模型中引用它;
public static $rules = array(
'first_name' => 'required|Max:45',
'surname' => 'required|Max:45',
'address_line_1' => 'required|Max:255',
'address_line_2' => 'Max:255',
'address_line_3' => 'Max:255',
'town' => 'required|Max:45',
'county' => 'Max:45',
'postcode' => 'required|Postcode',
'phone_number' => 'required|Max:22'
);
Run Code Online (Sandbox Code Playgroud)
它已在我的global.php中注册;
Validator::resolver(function($translator, $data, $rules, $messages) {
return new CoreValidator($translator, $data, $rules, $messages);
});
Run Code Online (Sandbox Code Playgroud)
一切正常,但它返回的错误信息是
validation.postcode
如何/在何处为此设置自定义错误消息?
我尝试过设置app/lang/en/validation.php(既不工作);
'custom' => array(
"validation.postcode" => "my error message 1",
"postcode" => "my error message 2"
)
Run Code Online (Sandbox Code Playgroud)
PS我知道有一个正则表达式验证方法,但这个问题对我来说更通用.
我想我已经破解了它.
我将消息添加到app/lang/en/validation.php中的主数组中,而不是添加到自定义子数组中.
return array(
...
"url" => "The :attribute format is invalid.",
"postcode" => "my error message 2",
...
)
Run Code Online (Sandbox Code Playgroud)
如果这不是正确的方法,那么有人可以自由纠正我.
| 归档时间: |
|
| 查看次数: |
11092 次 |
| 最近记录: |