公開日:2012.07.18

Controllerからforgeを用いてViewへ値を渡す方法 by fuelPHP

テクログ

ControllerからView::forgeを用いてViewへ値を渡す方法を以下に記載しておきます。

■例1)

・Controller.php

$data["ymj"] = "わたしはやまじゅんです"; 
$this->template->content = View::forge (指定url/index, $data);

・指定url/index.php

上記のように、 forge されたViewファイル内で値を参照する場合は、

問題なく参照することが出来ます。

 

■例2)

・Controller.php

$data["ymj"] = "みんなのやまじゅんです";
$this->template->content = View::forge (xxx/index, $data);

 ・xxx/index.php

・yyy/_form.php

 

上記のように、index.php内で_form.phpをrender している場合、
renderの第2引数で、配列に入れなおすことで対応できます。

 

ただ、いちいちControllerから渡された値をまた配列に入れるのは
面倒くさいので、以下のように設定して対応します。

 

・xxx/index.php

↓↓↓↓↓

 

$__dataにControllerで設定された値も入っているので
ばっちり取得できます。

 

上記対応時、以下のエラーが発生する場合があります。

 

RuntimeException [ Error ]: Object class “OrmQuery” could not be converted to string or sanitized as ArrayAccess. Whitelist it in security.whitelisted_classes in app/config/config.php to allow it to be passed unchecked.

 

その場合、以下のファイルの指定場所を設定することで解決します。

 

docroot/fuel/app/config/config.php

"whitelisted_classes" => array(
"FuelCoreResponse",
"FuelCoreView",
"FuelCoreViewModel",
"FuelCoreValidation",
"Closure",
"OrmQuery",←追加
)

 

これでめでたし、めでたし♪

ではでは~!

この記事を書いた人

core-corp

入社年2010年

出身地東京都

業務内容インフラ

特技または趣味ドライブ

core-corpの記事一覧へ

テクログに関する記事一覧