レイアウトでは、ブロックを作成するときにカスタム引数を設定できます。次に例を示します。
<block class="Company\Module\Block\Hello" name="block_name" template="test.phtml">
<arguments>
<argument name="my_arg" xsi:type="string">testvalue</argument>
</arguments>
</block>
後でブロック内でこのような引数を取得できます。
$arg = $this->getMyArg();
プログラムでブロックを作成すると(このメソッドに従って:link)、次のようにカスタム引数を設定できます。
$block = $this->frameworkViewLayout
->createBlock(
"Company\Module\Block\Hello",
"block_name",
['my_arg' => 'testvalue']
)
->setData('area', 'frontend')
->setTemplate($template)
->toHtml();
ブロックは正しく作成され、完全に機能します。しかし、後でブロックのクラス内の引数を取得する方法がわかりません。私はこのようにしてみました:
$arg = $this->getMyArg();
または
$arg = $this->getData('my_arg');
しかし、それは何も返しません。私は何を取りこぼしたか?