画面の切替(FuelPHP)

どうも。kishidaです。
fuelphpを使いました。使った感じだと少し癖がありますが慣れたらかなり使いやすそうに感じました。

その中で画面の切替などに手間取ったのでそれを書きます。

まず切り替えに便利そうなのがこんな記述の処理です。

$data=array(
'hoge'=>1
);
return View::forge('Hoge/hoge',$data);

View::forgeでviewオブジェクトを生成し、それを出力する。

第一引数はviewの場所を指定(viewsディレクトリからの相対位置)。第2引数生成したテンプレートで扱いたい値を渡しています。(指定しなくてもOK)

連想配列を指定してやることで、テンプレート側でキー名を変数として扱えるようになります。

例(1が出力されます)


値を渡す方法は他にもありますが個人的にはこれが一番扱いやすいかな~と思っています。

ただ上記の方法だとテンプレートを直接生成しているので、例えば

public function action_index(){
  //処理(1)
  return View::forge('Hoge/index',$data);
}

public function action_hoge(){
  //処理(2)
  return View::forge('Hoge/index',$data);
}

これでaction_hogeの方を実行してやると処理(2)は実行されますが処理(1)は実行されません。

処理(1)も実行したい場合はredirect()でアクセスしてやります。

public function action_hoge(){
  //処理(2)
  Response::redirect('Hoge/index')
}

※redirect()で値を渡すことはできないのでaction_hogeのデータをaction_index()使用したい場合はセッションを利用する。

冷静に考えたら上記の例で言えば
リクエストの呼び出し → 処理 → テンプレート生成
となっているのだから別のメソッドが動かなくて当たり前なんですよね。

私はいったい何を考えてたのやら。

カテゴリー: php

コメントを残す

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

*