2016-02-27 22 views
0

是否有一种简单的方法将数据传递给通过刀片的@include包含的子视图?因为我知道我将在整个网站中使用相同的代码,所以我决定一个特定的变量名必须可用于子视图来实现其显示。如何将数据传递给laravel中的childview 5

起初我用类似如下:

foreach($user->$posts as $requiredNameForChildView){ 
@include('mychildView') //child view uses $requiredNameForChildView 
} 

但接下来的事情得到了与其他观点更具挑战性,因为我并不总是通过对象的数组像以前那样需要循环,不是让我来分配在foreach中使用'as'的别名。在这些情况下,我打开一个PHP环境并在进入子视图之前分配$ requiredNameForChildView,但这似乎并不与Laravel的干净代码实践内联。

做这种事情背后的最佳做法是什么?

回答

0

它应该没有任何额外的代码,因为变量在所有视图中都可用。你试过用它吗?

对于任何类型的支票,你可以只使用@if ... @endif建设或ternary运营商。

https://laravel.com/docs/5.1/blade#control-structures

+0

感谢您的回复。我真的不需要在调用子视图之前检查一些东西,我的问题是在变量赋值中。我在页面的不同部分多次调用@include语句。我必须传入一组图像,并使用子视图生成图像滑块。但这只是意味着在调用子视图之前,我必须重新分配变量,具体取决于页面的哪一部分。我无法找到一个干净的方式来做到这一点。 – alaboudi

+0

为什么你需要重新分配变量?你可以从你的控制器接收所有变量,并可以在你所有的视图中使用它们......对于我来说不是很清楚,你可以发布一些简单的示例代码吗? –

相关问题