CodeIgniter 2.1.3を使っています。
Form Validationを使うのはとっても簡単です。
アクション名でライブラリを読み込みましょう。
class Hoge extends CI_controller {
function create() {
if ($this->input->post()) {
$this->load->library('form_validation');
$this->form_validation->set_rules('title', 'タイトル', 'required');
if (!$this->form_validation->run()) {
// 再度フォームを表示する
} else {
// DBに登録するなど
// redirect('/hoge/index');
}
} else {
// フォームを表示する
}
}
}
[/php]
set_rulesで、ルールを設定します。
第一引数がname、第二引数がラベル、第三引数がルールです。
1
$this->form_validation->set_rules(name, label, roles);
ルールは、|を使うことで複数指定できます。
CodeIgniterは日本語の言語ファイルがないので、英語のやつをとってきて修正していきます。
言語ファイルは、system/language/englishにあります。これをコピーして、application/language/japaneseにペーストします。
form_validation_lang.phpの中身を自由に書き換えてやりましょう!
また、labelに言語ファイルを指定することもできます。上記の例ではそのまま指定しましたが、多言語対応しようと思ったら、必要ですね。
// これを
$this->form_validation->set_rules('title', 'タイトル', 'required');
// こうする
$this->form_validation->set_rules('title', 'lang:attr_title', 'required');
attr_titleは適当に設定します。
application/language/japanese/attr_lang.phpを作り、以下のようにします。
$lang['attr_title'] = 'タイトル';
適宜読み込みたいので、autoload.phpに設定しましょう。
autoload.phpにも書いてありますが、ファイル名がattr_lang.phpの場合、読み込み指定はattrにします。_langは省略します。
// application/config/autoload.php
$autoload['language'] = array('attr');
[/php]
これで、エラーメッセージのラベルについては言語ファイルから参照しにいきます。
