Trong bố cục khi tôi tạo một khối, tôi có thể đặt các đối số tùy chỉnh, ví dụ:
<block class="Company\Module\Block\Hello" name="block_name" template="test.phtml">
<arguments>
<argument name="my_arg" xsi:type="string">testvalue</argument>
</arguments>
</block>
Sau này tôi có thể truy xuất đối số như thế này trong khối:
$arg = $this->getMyArg();
Khi tôi tạo một khối theo chương trình (theo phương thức này: link ) tôi có thể đặt các đối số tùy chỉnh như thế này:
$block = $this->frameworkViewLayout
->createBlock(
"Company\Module\Block\Hello",
"block_name",
['my_arg' => 'testvalue']
)
->setData('area', 'frontend')
->setTemplate($template)
->toHtml();
Khối được tạo chính xác và nó hoạt động hoàn hảo. Nhưng tôi không chắc làm thế nào sau này tôi có thể truy xuất đối số trong lớp của khối . Tôi đã cố gắng làm điều đó như thế này:
$arg = $this->getMyArg();
hoặc là
$arg = $this->getData('my_arg');
Nhưng nó không trả về gì cả. Tôi đã bỏ lở những gì?