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]
これで、エラーメッセージのラベルについては言語ファイルから参照しにいきます。