FuelPHP 驗證
fuelphp 驗證
驗證 是 web 應(yīng)用程序中最頻繁和最重復(fù)的任務(wù)之一。用戶在表單中輸入所需的數(shù)據(jù)并提交。然后,web 應(yīng)用程序需要在處理數(shù)據(jù)之前驗證數(shù)據(jù)。例如,用戶輸入員工數(shù)據(jù),post_action 需要驗證,然后才能將其保存到數(shù)據(jù)庫中。 fuelphp 為此提供了一個非常簡單的類 validation。
在 fuelphp 中,驗證的概念非常簡單,它通過 validation 類提供各種方法來正確驗證表單。以下是驗證的工作流程,
步驟 1-使用 forge 方法創(chuàng)建新的驗證對象。
$val = validation::forge();
步驟 2-添加需要使用 add 方法驗證的字段。
$val->add('name', 'employee name');
步驟 3-使用 add_rule 為添加的字段設(shè)置驗證規(guī)則。
$val->add('name', 'employee name')->add_rule('required'); $val->add('age', 'employee age')->add_rule('required') ->add_rule('numeric_min', 20) ->add_rule('numeric_max', 30);
步驟 4-調(diào)用 run 方法來驗證數(shù)據(jù)。
// run validation on just post if ($val->run()) { // success } else { // falier }
步驟 5-使用驗證和錯誤分別獲取有效和無效字段。
$vars = $val->validated(); $vars = $val->error();
規(guī)則
fuelphp 包含許多要驗證的規(guī)則,還提供了創(chuàng)建新規(guī)則的選項。 validation類支持的規(guī)則如下,
- required-要輸入的值
- required_with-將另一個字段設(shè)置為伴隨字段。如果設(shè)置了字段,則還需要設(shè)置伴隨字段
- match_value-設(shè)置要與字段值匹配的值
- match_pattern-將要匹配的值設(shè)置為與字段值匹配的正則表達式
- match_field-將另一個字段的值設(shè)置為與該字段值匹配的值
- match_collection-將要匹配的值設(shè)置為具有字段值的集合
- min_length-設(shè)置字段值的最小長度
- max_length-設(shè)置字段值的最大長度
- exact_length-設(shè)置字段值的確切長度
- valid_date-將字段的值設(shè)置為有效日期
- valid_email-將字段的值設(shè)置為有效的電子郵件
- valid_emails-將字段的值設(shè)置為有效的電子郵件,以逗號分隔
- valid_url-將字段的值設(shè)置為有效的 url
- valid_ip-將字段的值設(shè)置為有效的 ip
- numeric_min-設(shè)置字段值的最小值
- numeric_max-設(shè)置字段值的最大值
- numeric_between-設(shè)置字段值的最小值和最大值
- valid_string-類似于正則表達式,但更簡單
$val->add('username', 'user name')->add_rule('valid_string', array('alpha, dots');
這里,alpha 指的是字母字符,點指的是 (.)。有效字符串僅是包含字母字符和 (.) 的字符串。其他選項是大寫、小寫、特殊、數(shù)字、空格等。
工作示例
我們可以更新添加員工功能以包含驗證。只需更新員工控制器的 post_add 方法,如下所示。
public function post_add() { $val = validation::forge(); $val->add('name', 'employee name')->add_rule('required'); $val->add('age', 'employee age')->add_rule('required') ->add_rule('numeric_min', 20) ->add_rule('numeric_max', 30); if ($val->run()) { $name = input::post('name'); $age = input::post('age'); $model = new model_employee(); $model->name = $name; $model->age = $age; $model->save(); response::redirect('employee/list'); } else { response::redirect('employee/add'); } }
在這里,我們指定了 姓名和年齡作為必填字段。 age 需要在 20 到 30 之間。如果兩個規(guī)則都有效,則員工數(shù)據(jù)將被保存并重定向到員工列表頁面。否則,員工數(shù)據(jù)將被拒絕并重定向到添加員工頁面。
相關(guān)文章
- CodeIgniter 使用數(shù)據(jù)庫
- CodeIgniter 發(fā)送電子郵件
- CodeIgniter 臨時數(shù)據(jù)
- CakePHP 控制器
- CakePHP 查看記錄
- CakePHP 更新記錄
- FuelPHP 教程
- FuelPHP 安裝
- FuelPHP 請求和響應(yīng)
- FuelPHP 模型和數(shù)據(jù)庫
- FuelPHP 驗證
- FuelPHP 高級表單編程
- FuelPHP HMVC 請求
- FuelPHP 事件
- Laravel Cookie
- Laravel視圖
- Laravel Blade 模板
- Laravel 錯誤和日志
- Laravel 契約
- Laravel 哈希