magento2模板指定规则

357 阅读1分钟

magento2二次开发教程,请查看电子书:

点此查看   ==》Magento2.x企业级开发实战

本文内容描述默认的模板在magento中是怎样工作的。

模板是怎么指定的? 模板是由layout文件指定的,每个layout文件关联到一个对应的模板。 在layout文件中,模板文件由 template属性指定: 如下文件示例: vendor/magento/module-catalog/view/frontend/layout/catalog_category_view.xml

<block class="Magento\Catalog\Block\Category\View" name="category.image" template="Magento_Catalog::category/image.phtml"> 该layout的内容可以理解为,名字为"category.image"的block,他的内容由 Magento_Catalog这个模块的子目录categoy下面的image.html模板来渲染。

Magento_Catalog对应的目录为: vendor\magento\module-catalog\view\frontend\templates

模板路径也可以通过Blcok类使用$_template属性指定: 如:

vendor\magento\module-review\Block\View.php
protected $_template = 'Magento_Review::view.phtml';

模板位置:

Module模块下的模板: 通常路径为:<module_dir>/view/frontend/templates/<path_to_templates> 2.Theme主题下的模板: 通常路径为:<theme_dir>/<Namespace>_<Module>/templates/<path_to_templates>

模板从layout文件中获取参数: 假设我们在layout文件中定义了如下参数:

<argument name="store_name" xsi:type="string">ExampleCorp</argument> 在模板中我们有两种获取该参数的写法:

$block->getData('store_name')
$block->getStoreName()

同样,在模板中有两种写法用来判断是否设置了该参数:

$block->hasData('store_name')
$block->hasStoreName()