继承不仅在PHP类中实现,在视图中同样存在,一般用做公共部分的页面
php父类中的方法能能在子类中重写
案例:(在视图里)编辑父类页面,再编写子类,测试继承关系
(1)先在resources/views/建立一个父文件,parent.blade.php
父类里写上页面的头部内容,和尾部内容,中间可变内容,用@yield(‘zhengwen’)连接子类中的
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>父类</title>
<!-- Fonts -->
<link href="https://fonts.googleapis.com/css?family=Nunito:200,600" rel="stylesheet">
<!-- Styles -->
<style>
.header,.footer{
width: 100%;
height: 40px;
background-color: aquamarine;
}
</style>
</head>
<body>
<!-- 编辑父类页面,再编写子类 -->
<div>
<h1 class="header">头部导航</h1>
</div>
<!-- 可变区域 -->
@yield('zhengwen')
<!-- 可变区域 -->
<div>
<h2 class="footer">底部信息</h2>
</div>
</body>
</html>
(2)再resources/views/建立一个子文件,child.blade.php
在子类中用 @extends(‘parent’)继承父类,parent是父类的名字
<!--用@section重写方法,里面的方法名,必须和父类中@yield(),里的方法名必须保持一致,并且是唯一的-->
@section('zhengwen')
<div class="body">
杰克丹尼军错女女女女女女女女女女女女女
</div>
<!--用@endsection结束重写方法-->
@endsection
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>子类</title>
<!-- Fonts -->
<link href="https://fonts.googleapis.com/css?family=Nunito:200,600" rel="stylesheet">
<!-- Styles -->
<style>
</style>
</head>
<body>
<!-- 继承的父类是parent -->
@extends('parent')
<!-- 重写的方法 -->
@section('zhengwen')
<div class="body">
杰克丹尼军错女女女女女女女女女女女女女
</div>
@endsection
</body>
</html>
(3)定义控制器方法:
public function parenttest(){
return view('child');
}
(4)定义路由
Route::get('parent','TestController@parenttest');
效果图
还可以引入模板:
引用模板,(控制器里的),文件名不含后缀,引入静态变量,在引入模板的时候,不要引入带有变量的,会报错
用@include来引入。。。