public function action_create() { //POST送信なら if (Input::method() == 'POST') { //バリデーションの初期化 $val = Model_Admin::validate('create'); $val->add_field('password', 'パスワード', 'required|max_length[100]'); //バリデーションOKなら if ($val->run()) { //POSTデータを受け取る $username = Input::post('username'); $email = Input::post('email'); $password = Input::post('password'); $group = Input::post('group'); //重複確認 $username_count = Model_Admin::count(array('where' => array(array('username' => $username)))); $email_count = Model_Admin::count(array('where' => array(array('email' => $email)))); //ユーザー名が重複していたら if ($username_count > 0) { Session::set_flash('error', 'ユーザー名が重複しています'); Response::redirect('admin/create'); } else { //Eメールアドレスが重複していたら if ($email_count > 0) { Session::set_flash('error', 'Eメールアドレスが重複しています'); Response::redirect('admin/create'); } //Authのインスタンス化 $auth = Auth::instance(); //もしユーザー登録されたら if ($auth->create_user($username, $password, $email, $group)) { //登録成功のメッセージ Session::set_flash('success', '<span class="btn btn-primary span8">新規ユーザーの『' . $username . '』を追加しました</span><br>'); //indexページへ移動 Response::redirect('admin/index'); } else { //データが保存されなかったら Session::set_flash('error', '登録されませんでした'); } } } //バリデーションNGなら Session::set_flash('error', $val->show_errors()); } //POST送信でなければ //テーマのインスタンス化 $this->theme = \Theme::forge(); //テーマにテンプレートのセット $this->theme->set_template('admin/template'); //テーマのテンプレートにタイトルをセット $this->theme->get_template()->set('title', 'ameken.com'); //テーマのテンプレートにビューとページデータをセット $this->theme->get_template()->set('content', $this->theme->view('admin/create')); return $this->theme; }