Codeigniter-flashdata

提供:Dev Guides
移動先:案内検索

CodeIgniter-Flashdata

Webアプリケーションの構築中に、データを一度だけ保存する必要があり、その後そのデータを削除する必要があります。 たとえば、エラーメッセージまたは情報メッセージを表示する場合。 PHPでは、手動で行う必要がありますが、CodeIgniterによりこの作業が簡単になりました。 CodeIgniterでは、flashdataは次のリクエストまでしか使用できず、自動的に削除されます。

Flashdataを追加

以下に示すように、単にフラッシュデータを保存できます。

$this->session->mark_as_flash('item');
  • * mark_as_flash()*関数はこの目的で使用され、保存される値の引数を1つだけ取ります。 配列を渡して複数の値を保存することもできます。
  • * set_flashdata()*関数も使用できます。これは、以下に示すように、名前と値の2つの引数を取ります。 配列を渡すこともできます。
$this->session->set_flashdata('item','value');

Flashdataを取得する

Flashdataは、以下に示すように、フェッチするアイテムの1つの引数を取るflashdata()関数を使用して取得できます。 flashdata()関数は、フラッシュデータのみを取得し、他のデータは取得しないようにします。

$this->session->flashdata('item');

引数を渡さない場合、同じ関数で配列を取得できます。

*FlashData_Controller.php* というクラスを作成し、 *application/controller/FlashData_Controller.php* に保存します。
<?php
   class FlashData_Controller extends CI_Controller {

      public function index() {
        //Load session library
         $this->load->library('session');

        //redirect to home page
         $this->load->view('flashdata_home');
      }

      public function add() {
        //Load session library
         $this->load->library('session');
         $this->load->helper('url');

        //add flash data
         $this->session->set_flashdata('item','item-value');

        //redirect to home page
         redirect('flashdata');
      }
   }
?>
*flashdata_home.php* というビューファイルを作成し、 *application/views/flashdata_home.php* に保存します。
<!DOCTYPE html>
<html lang = "en">

   <head>
      <meta charset = "utf-8">
      <title>CodeIgniter Flashdata Example</title>
   </head>

   <body>
      Flash Data Example
      <h2><?php echo $this->session->flashdata('item'); ?></h2>
      <a href = 'flashdata/add'>Click Here</a> to add flash data.
   </body>

</html>
*application/config/routes.php* の *routes.php* ファイルに変更を加え、ファイルの最後に次の行を追加します。
$route['flashdata'] = 'FlashData_Controller';
$route['flashdata/add'] = 'FlashData_Controller/add';

次のリンクにアクセスして、上記の例を実行します。 yoursite.comをサイトのURLに置き換えます。

http://yoursite.com/index.php/flashdata

上記のURLにアクセスすると、次のような画面が表示されます。

Flash Data

ここをクリック」リンクをクリックすると、次のような画面が表示されます。 この画面では、フラッシュデータ変数の値が表示されます。 ページを再度更新すると、上記のような画面が表示され、フラッシュデータ変数が自動的に削除されます。

Flashデータの追加