我使用的是Laravel 4.2,我的页面上有多个引导程序框。我想将这些文件放在一个我可以包含的文件中,并附上一些插入其中的参数,因此我不需要每次都为这些框重复相同的代码。
控制器
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#EFE3AF"
android:orientation="vertical" >
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="500dp"
android:layout_weight="1"
>
<SurfaceView
android:id="@+id/surfaceview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@null"
android:scaleType="fitXY"
/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:gravity="right"
android:orientation="vertical"
android:paddingRight="@dimen/right01"
android:paddingTop="@dimen/top02" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:src="@drawable/village" />
</LinearLayout>
</FrameLayout>
</LinearLayout>
</RelativeLayout>
box.blade.php (包含文件)
$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);
我需要盒体的内容是动态的,因此它可以是字符串或其他包含文件或两者的组合。如果它只是一个字符串,我可以轻松地将其与控制器一起传递给其他变量,但我需要它能够在那里放置一个包含文件,除了它可以包含许多不同的包含文件
如何将include作为另一个include的参数传递?或者还有另一种完全不同的做法,我还没考虑过吗?
答案 0 :(得分:1)
@include()
类似于php include "";
,因此变量的范围不会发生变化,您可以在box.blade.php
中访问includes.global.pie_chart
的变量而不通过它。
因为范围没有变化,你可以这样做:
return view('box', "browser_usage_pie_chart_options" => $browser_usage_pie_chart_options):
在您的视图 box.blade.php 中:
@include('includes.global.pie_chart')
并在 includes.global.pie_chart 中将其命名为:
{{ $browser_usage_pie_chart_options }}
我建议如果你的包含被多次使用,有时变量不存在,在打印之前检查它是否存在@if(isset($browser_usage_pie_chart_options))
答案 1 :(得分:0)
像这样
@include("part.dateTemplate",["name" => "pr_date"])
// dateTemplate
{{ $name }} // pr_date