我正在使用 Laravel 开发这个项目。
根据我正在观看的教程,我必须在主视图的顶部添加这段代码。
@extends('layouts.masters.main')
由于我是 Laravel 的新手,这让我想知道为什么我不能简单地使用它。
@include('layouts.masters.main')
我试了一下,它基本上做了同样的事情。唯一的问题是我确实知道 include 是如何工作的,但我真的不知道 extends 是做什么的。
有区别吗,是的,那是什么。为什么辅导员选择 @extends
而不是 @include.
最佳答案
@include
就像一个基本的 PHP 包含,它包含一个“部分” View 到您的 View 中。
@extends
让你“扩展”一个模板,它定义了它自己的部分等。你可以扩展的模板将使用 @yield
定义它自己的部分,这然后你可以把你自己的东西放到你的 View 文件中。
例子:
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
这将导致:
<html>
<body>
View one's header
View one's content
View one's footer
</body>
</html>
现在您可以创建另一个 View 来扩展同一模板,但提供自己的部分。
使用@extend
的另一个好处是继承。您可以提供一个基本模板,然后是另一个扩展该模板的子模板,该子模板随后会产生自己的部分。然后您可以扩展该子模板。
关于php - Laravel @extends 和 @include,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39749683/