@include
is just like a basic PHP include, it includes a "partial" view into your view.
@extends
lets you "extend" a template, which defines its own sections etc. A template that you can extend will define its own sections using @yield
, which you can then put your own stuff into in your view file.
Example:
template.blade.php
<html>
<body>
@yield('header')
@yield('content')
@yield('footer')
</body>
</html>
view-one.blade.php
@extends('template')
@section('header')
View one's header
@endsection
@section('content')
View one's content
@endsection
@section('footer')
View one's footer
@endsection
Which will result in:
<html>
<body>
View one's header
View one's content
View one's footer
</body>
</html>
Now you could create another view which extends the same template, but provides its own sections.
Another benefit to using @extend
is inheritance. You could provide a base template, and then another child template that extends that one which subsequently yields it's own sections. You can then extend that child template.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…