本节内容描述默认的模板在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';` ***** 模板位置: 1. 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> ``` 在模板中我们有两种获取该参数的写法: 1. `$block->getData('store_name')` 2. `$block->getStoreName()` 同样,在模板中有两种写法用来判断是否设置了该参数: 3. `$block->hasData('store_name')` 4. `$block->hasStoreName()`