ブルーシュ

IT技術の勉強記録

ホーム > Tips > Magento

magentoで、子ブロックから変数を受け取りたいとき

magentoで、子ブロックから変数を受け取りたいとき。
たとえば、商品リストページでフィルター選択されているときに、その値をcatalog/layer/view.phtmlで取得したい場合。(catalog/product/view.phtmlじゃないよ。)

本来ならばstate.phtmlでしか取得できませんが、view.phtmlでその値を取得するには2通りの方法があります。

①ポストデータを取得する

$post_data = $this->getRequest()->getParams(); する方法です。たとえば、URLの後ろにくっついている ?hoge-data=fugafuga&piyo-data=chun というポストデータを、

array("hoge-data" => "fugafuga",
	"piyo-data" => "chun");

このように取得できます。手軽だけど、余計な情報まで取得してしまう。

②子ブロックから取得する

親ブロックから見て、ひっぱってきたいデータを子ブロックが取得してることが条件です。view.phtmlでは、state.phtmlに対して$this->getStateHtml();しているので、有効です。
まず、state.phtml側で送りたいデータをセットします。

<?php $this->getParentBlock()->setData('hoge-data', 'fugafuga'); ?>

親ブロックである、view.phtmlではこのように受け取ります。

<?php echo $this->getData("hoge-data");?>

これで、view.phtmlでfugafugaが表示されます。

magentoで、子ブロックから変数を受け取りたいとき #Magento #ウェブデザイン #ウェブ制作 #WEBデザイン #WEB制作

作者の似顔絵

プログラミング歴19年🌈調べたことをブログにまとめていきます。
記事の感想・質問・間違い指摘などはツイッター ( @blooshcompany ) へお願いします。

秋田のウェブ活用をサポート

ホームページを自作してコスト削減!秋田の事業者は無料で利用できます。
ネットショップ・WordPress・SEO対策などさまざまなお悩みをサポートします。

その他、フロントエンド案件のご依頼はインフォメーション

秋田市 レンタル着物 笹パンダ堂のバナーリンク