Laravel 4包含多个路线视图

时间:2013-11-08 06:22:45

标签: php laravel-4

是否可以在路线中包含多个视图?这样做的最佳做法是什么,假设我希望配置文件,标题,内容和页脚文件加入并加载到视图中?如果在路线中这样做,那么我可以根据路线请求轻松更改内容。

谢谢。

2 个答案:

答案 0 :(得分:4)

你需要进一步了解Laravel's Blade模板。使用Blade模板,您可以创建布局并将它们很好地级联到彼此。例如,让我们采取以下路线......

应用程序/ routes.php文件     

Route::get('about', function()
{
    return View::make('about');
});

Route::get('contact', function()
{
    return View::make('content')
});

如您所见,我们对这两个不同的请求有两个不同的视图。但是,使用Blade模板和部分,我们可以创建主布局,只更改我们需要的内容。所以,这是我们的主布局的样子。

应用程序/视图/布局/ master.blade.php

<!DOCTYPE html>
<html>
<head>
    <title>Site Title</title>
</head>
<body>
    <nav>
        <ul>
            <li>Home</li>
            <li>About</li>
            <li>Contact</li>
        </ul>
    </nav>

    @yield('content')

</body>
</html>

这是我们的主布局。我们的导航将始终保持不变,我们的HTML和头部以及我们不想一遍又一遍地写的所有内容。但是,我们也在刀片中使用yield来接受内容并将其放在那里。这是我们的实际观点来自routes.php。

应用程序/视图/ about.blade.php

@extends('layouts.master')

@section('content')
    <p>This is the about me content.</p>
@endsection

我们可以简单地扩展主布局,并将我们的内容放在content部分中,我们可以命名我们想要的任何内容。与其他页面相同,请联系。

应用程序/视图/ contact.blade.php

@extends('layouts.master')

@section('content')
    <p>This is the contact page content.</p>
@endsection

正如你所看到的,它不是包括多个视图......而是它是关于扩展不同的视图并使用Blade将它们组合在一起。

答案 1 :(得分:0)

在另一个视图中包含页眉/页脚的替代方法如下所示。

https://laravel.com/docs/5.3/blade#including-sub-views

<div>
@include('templates.header') // views/templates/header.blade.php

<form>
    <!-- Form Contents -->
</form>