layout中的那些name属性是怎么定义的?

2.44K 浏览M2交流区

layout中的那些name属性是怎么定义的?


比如上图中,有些

name="menu" page.title    method="setActive"

还有name="demo.category.view.container" demo.category.view.image

这些是怎么定义的?我怎么找与他相关联的? 我是一个新手,M2框架运行原理感觉能看得懂,但是layout里面这些东西看的一脸懵。找了很多文档,没找到能说的很明白的。麻烦大神们给讲一下@老邹

0

自定义

0

block和container里的name都是自定义的,只要不重复就行,没有严格的限制,不影响什么。
说白了name就是block的名字,我们根据name就能找到block,对block进行调整。
after/before这些都是位置关系,after='xxx'是放在xxx这个块的后面,before='xxx'是放在xxx这个块的前面。
有些after/before后面没有name,只有-
after='-'  代表放在最后面
before='-'代表放在最前面

0

这个说起来比较复杂难懂。
说白了就是跟php一样,继承父类,然后修改父类的function。这里的name就相当于php里的function名字。
你看下module-theme/view/frontend/page_layout。里面有4种布局的xml。
一般我们页面的xml都继承这4种布局中的某一种,可以在xml里指定  也可以在控制器里指定。
这4种布局都继承自module-theme/view/base/page_layout/empty.xml。
比如
<referenceContainer  name="content">
就是引用content这个节点,在这个节点里增加修改内容。

熟能生巧,你在实际运用中多练习下就会了。

0