php模板laravel,php – 模板在Laravel

本文探讨了在 Laravel 中混合使用两种不同布局方法的问题,提出了一种通过控制器管理布局的推荐方法。讲解了如何避免在视图中重复包含布局,并提供了示例代码展示如何正确使用@section 和 @yield 进行内容组织。同时提醒注意视图嵌套的位置,以防止内容插入错误的位置。
摘要由CSDN通过智能技术生成

你正在混合Laravel的两种不同的布局方法。

这样,您正在渲染布局视图,包括主视图,并尝试再次包括布局。

我个人的偏好是控制器的方法。

控制器布局

控制器和布局可以保持不变。

注意:作为一个快捷方式,您可以嵌套内容而不是View :: make,当您在布局中回显它时自动呈现它。

在home.blade.php中删除@layout函数。

编辑(示例):

controllers / home.php

class Home_Controller extends Base_Controller {

public $layout = 'layouts.default';

public function action_index()

{

$this->layout->title = 'title';

$this->layout->nest('content', 'home', array(

'data' => $some_data

));

}

}

views / layouts / default.blade.php

{{ $title }}

{{ $content }}

views / home.blade.php

部分内容包括在内容中。

@include('partials.header')

{{ $data }}

@include('partials.footer')

刀片布局

如果你想要这种方法,你有一些问题。首先,你在布局后包括新内容。不确定是否有意,但@layout函数本身基本上只是一个@include限制在视图的最开始。所以如果你的布局是一个封闭的html,任何包含之后,将附加在你的html布局之后。

你的内容应该在这里使用@section函数和@yield它在你的布局。页眉和页脚可以包含在带有@include的布局中,或者如果要在内容视图中定义它,那么也可以将它们放在@section中,如下所示。如果你这样定义它,如果一个部分不存在没有得到。

controllers / home.php

class Home_Controller extends Base_Controller {

public function action_index()

{

return View::make('home')->with('title', 'title');

}

}

views / layouts / default.blade.php

{{$title}}

@yield('header')

@yield('content')

@yield('footer')

views / home.blade.php

@layout('layouts.default')

@section('header')

header here or @include it

@endsection

@section('footer')

footer

@endsection

@section('content')

content

@endsection

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值