CodeIgniterでForm Validationを使う。

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]

これで、エラーメッセージのラベルについては言語ファイルから参照しにいきます。


タグ CodeIgniter, PHP | パーマリンク.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です