LoginSignup
3
1

More than 5 years have passed since last update.

FuelPHP 1.8 エラーメッセージを表示させる方法

Last updated at Posted at 2018-04-01

1.やりたいこと

  • エラーメッセージを画面に表示させる
  • ページ遷移、リダイレクトするとエラーメッセージのSessionは削除される
  • エラーメッセージがなければ表示させない

2.環境

PHP 7.0.24
FuelPHP 1.8
※controllerはController_Templateを継承

3.実装

viewにエラーメッセージを表示させる場所を準備

fuel/app/view/test/index.php
<!-- $err_msgが存在した場合は、エラーメッセージを表示 -->
<?php if( ! empty($err_msg)): ?>
    <div class="alert alert-danger" role="alert">
        <strong>WARNING</strong><?php echo $err_msg; ?>
    </div>
<?php endif ?>

エラーメッセージを格納する処理

fuel/app/classes/controller/test.php
// 実行される処理例
public function post_hoge()
{
    try {

        // ifがtrueだった場合はエラー
        if ( ! Input::post() ) {

            // エラーメッセージを作成
            $err_msg = 'エラーです。';

            // エラーをスロー
            throw new Exceotion($err_msg);

        }

        // その他処理

        } catch (Exception $e) {

            // $err_msgをSessionに格納
            Session::set_flash('err_msg', $e->getMessage());

            // リダイレクト
            Response::redirect(Uri::base().'test');

        }

        // 成功時の処理

}

エラーメッセージをviewに渡す処理

fuel/app/classes/controller/test.php
// リダイレクト先のコントローラー
public function action_index()
{
    // viewに渡す変数を格納
    $data = array(
        'err_msg' => Session::get_flash('err_msg'),
    );

    // viewを呼び出す
    $this->template->content = View::forge('test/index', $data);
}

4.最後に…

これでできるはず…

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1