2012.07.18
STAFF BLOG
スタッフブログ
TECHNICAL
テクログ
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",←追加
)
これでめでたし、めでたし♪
ではでは~!