5.0.4 增加hasScene方法用于檢查是否存在驗證場景
可以在定義驗證規(guī)則的時候定義場景,并且驗證不同場景的數(shù)據(jù),例如:
$rule = [
'name' => 'require|**x:25',
'age' => 'number|between:1,120′,
'e**il' => 'e**il',
];
$msg = [
'name.require' => '名稱必須',
'name.**x' => '名稱最多不能超過25個字符',
'age.number' => '年齡必須是數(shù)字',
'age.between' => '年齡只能在1-120之間',
'e**il' => '郵箱格式錯誤',
];
$data = [
'name' => 'thinkphp',
'age' => 10,
'e**il' => '[email protected]',
];
$validate = new Validate($rule);
$validate->scene('edit', ['name', 'age']);
$result = $validate->scene('edit')->check($data);
表示驗證edit場景(該場景定義只需要驗證name和age字段)。
如果使用了驗證器,可以直接在類里面定義場景,例如:
namespace appindexalidate;
use thinkValidate;
class User extends Validate
{
protected $rule = [
'name' => 'require|**x:25',
'age' => 'number|between:1,120′,
'e**il' => 'e**il',
];
protected $message = [
'name.require' => '名稱必須',
'name.**x' => '名稱最多不能超過25個字符',
'age.number' => '年齡必須是數(shù)字',
'age.between' => '年齡只能在1-120之間',
'e**il' => '郵箱格式錯誤',
];
protected $scene = [
'edit' => ['name','age'],
];
}
然后再需要驗證的地方直接使用 scene 方法驗證
$data = [
'name' => 'thinkphp',
'age' => 10,
'e**il' => '[email protected]',
];
$validate = new ppindexalidateUser($rule);
$result = $validate->scene('edit')->check($data);
可以在定義場景的時候?qū)δ承┳侄蔚囊?guī)則重新設(shè)置,例如:
namespace appindexalidate;
use thinkValidate;
class User extends Validate
{
protected $rule = [
'name' => 'require|**x:25',
'age' => 'number|between:1,120′,
'e**il' => 'e**il',
];
protected $message = [
'name.require' => '名稱必須',
'name.**x' => '名稱最多不能超過25個字符',
'age.number' => '年齡必須是數(shù)字',
'age.between' => '年齡只能在1-120之間',
'e**il' => '郵箱格式錯誤',
];
protected $scene = [
'edit' => ['name','age'=>'require|number|between:1,120′],
];
}
可以對場景設(shè)置一個回調(diào)方法,用于動態(tài)設(shè)置要驗證的字段,例如:
$rule = [
'name' => 'require|**x:25',
'age' => 'number|between:1,120′,
'e**il' => 'e**il',
];
$msg = [
'name.require' => '名稱必須',
'name.**x' => '名稱最多不能超過25個字符',
'age.number' => '年齡必須是數(shù)字',
'age.between' => '年齡只能在1-120之間',
'e**il' => '郵箱格式錯誤',
];
$data = [
'name' => 'thinkphp',
'age' => 10,
'e**il' => '[email protected]',
];
$validate = new Validate($rule);
$validate->scene('edit', function($key,$data){
return 'e**il'==$key && isset($data['id'])? true : false;
});
$result = $validate->scene('edit')->check($data);
版權(quán)聲明: 本站資源均來自互聯(lián)網(wǎng)或會員發(fā)布,如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除!謝謝!
轉(zhuǎn)載請注明: 易優(yōu)eyoucms驗證場景的方法指南