信頼はずっと、挑戦はもっと。

お問い合わせ
TEL:03-3496-3888

BLOG コアテックの社員ブログ (毎週月曜~金曜更新中)

2012

18

7月

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(
'Fuel\Core\Response',
'Fuel\Core\View',
'Fuel\Core\ViewModel',
'Fuel\Core\Validation',
'Closure',
'Orm\Query',←追加
)

 

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

ではでは~!

この記事を書いた人

画像:投稿者アイコン

coretech

所 属:
WEBインテグレーション事業部
出身地:
渋谷
仕事内容:
Web制作