Laravel Blade:将数组作为参数传递给yield部分

时间:2016-02-17 14:12:27

标签: arrays laravel parameters blade yield

我想将一个数组作为参数从我的控制器传递到刀片模板。

我的控制器看起来像这样:

$myArray = array('data' => 'data');
return View::make('myTableIndex')
    ->nest('myTable', 'my_table_template', $myArray)

在我的刀片模板中,我得到了这样的收益:

@yield('myTable', $myArray)

但是我得到了错误:

Error: Array to string conversion

那是因为yield函数只接受字符串,对吧?

背景是: 我想要一个表格模板,我可以动态地用于多种目的或多个数据,所以我可以为多个表使用相同的模板,只需将列和内容作为数组传递。

如何将数组传递给yield部分?

2 个答案:

答案 0 :(得分:11)

您可以使用单独的文件并使用@include包含文件,同时您可以使用动态变量名称传递数据,这样您就可以在包含的视图中使用该变量名称,例如:< / p>

@include('view.name', ['variableName' => $array])

因此,在view.name视图中,您可以使用/ $array使用$variableName变量来访问variableName,您可以view.name使用任何名称。

因此,在单独的视图中,即section,您可以使用$variableName并使用bottomLayoutGuide执行任何操作。

注意:问题已在评论部分解决,但在此处作为答案添加以供将来参考,因此任何观看者来这里寻找类似问题都可以轻松获得答案。

答案 1 :(得分:1)

您不能将参数传递给节,但是由于 @yield 逻辑都是关于嵌套在使用变量的父级中,因此必须将参数传递给父级声明,在那里添加它:

@extends('parent_view',['parameter_name'=>'parameter_value'])