# 模板继承 ##介绍 模板继承类似于PHP中的类继承,有两个角色一个是“布局模板(父模板)”用于定义相应的blade(区块),然后是继承“布局模板”的“视图模板”,视图模板定义块内容替换布局模板中相应的blade区域。 [TOC] #### 特点 * 布局模板用于定义区块 * 视图模板用于定义替换布局模板的内容 * 布局模板可以被多个 视图模板 继承 ## 使用 ####布局模板(父模板) 布局模板是被子模板调用的,不需要在控制器或路由中读取。比如下面的模板文件 master.php ,子模板要调用时可以使用 <extend file='master'/> 继承这个父模板。 ``` <html> <head> <title>Blade 页面布局(父模板)</title> </head> <body> <blade name="content"/> <widget name="header"> 头部内容(父页面 widget标签内容) {{title}} </widget> <widget name="footer"> 底部内容(父页面 widget标签内容) </widget> </body> </html> ``` ### 视图模板(子模板) 视图模板指我们在控制器或路由中使用 View::make() 或 view() 函数显示的模板。 ``` <extend file='master'/> <block name="content"> <parent name="header" title="这是标题"> 这是主体内容 <parent name="footer"> </block> ``` ### 说明 * extend用于继承 布局模板(父级),必须放在 parent、block 等标签前面调用 * 使用block标签定义视图内容,block替换“父级模板"中相同name属性的blade标签 * parent标签用于将父级模板 widget标签内容显示到此处 * parent标签支持向父级传递内容如上例中的title,父级中使用{{title}}方式调用