【发布时间】:2015-08-21 02:30:43
【问题描述】:
我使用的是 Laravel 4.2,并且我的页面上有多个引导框。我想将它们与一些将插入其中的参数一起包含在一个文件中,这样我就不需要每次都为这些框重复相同的代码。
控制器
$box_options = array(
'icon_classes' => 'fa fa-pie-chart',
'box_title' => 'Browser Usage',
'box_footer_text' => 'View More Visitor Data'
);
return View::make('index')->with('box_options', $box_options);
box.blade.php(包含文件)
<div class="box box-default">
<div class="box-header with-border">
<h3 class="box-title">
<i class="{{ $icon_classes }}"></i> {{ $box_title }}
</h3>
</div><!-- /.box-header -->
<div class="box-body">
<div class="row">
@include('includes.global.pie_chart', $browser_usage_pie_chart_options)
</div><!-- /.row -->
</div><!-- /.box-body -->
@if($box_footer_text)
<div class="box-footer text-center">
<a href="javascript::;" class="uppercase">{{ $box_footer_text }}</a>
</div><!-- /.box-footer -->
@endif
</div><!-- /.box -->
我需要框体的内容是动态的,所以它可以是一个字符串或另一个包含文件或两者的组合。如果它只是一个字符串,我可以像使用其他变量一样轻松地将它传递给控制器,但我需要它能够在那里放置一个包含文件,除了它可以有许多不同的包含文件.
如何将包含作为另一个包含的参数传递?还是有另一种我没有考虑过的完全不同的方法?
【问题讨论】:
-
AFAIK,视图中可访问的所有变量也可以在视图内的所有包含中访问。不太确定这是否是你要找的东西
-
感谢您的回复,但这不是我要问的。我正在尝试将任何内容放入正文中,无论它是我传入的字符串还是另一个包含文件。
-
您可以使用
layouts。将框体中的include替换为yield('box-content'),在includes.global.pie_chart的顶部添加@extends('box.blade.php'),并将其所有其他内容包装到@section('box-content') ... @stop。现在结束,您可以在需要的位置添加includes.global.pie_chart,它将被包装到盒子中。 -
@AnatoliyArkhipov 我不太关注,但我认为您可能正在做一些事情。您介意在下面提供答案以及示例代码,以便我查看吗?
-
是的,在这种情况下@layout 不是你要找的
标签: php laravel laravel-4 blade