laravel compact()和-> with() [英] laravel compact() and ->with()
问题描述
我有一段代码,我试图找出为什么一个变体有效而另一个变体无效的原因.
I have a piece of code and I'm trying to find out why one variation works and the other doesn't.
return View::make('gameworlds.mygame', compact('fixtures'), compact('teams'))->with('selections', $selections);
这使我能够按预期生成灯具,团队和选区的阵列视图.
This allows me to generate a view of arrays for fixtures, teams and selections as expected.
但是,
return View::make('gameworlds.mygame', compact('fixtures'), compact('teams'), compact('selections'));
不允许允许正确生成视图.我仍然可以回显数组,并且可以得到预期的结果,但是一旦到达选择区,视图就不会呈现.
does not allow the view to be generated properly. I can still echo out the arrays and I get the expected results but the view does not render once it arrives at the selections section.
没关系,因为我可以使用->with()
语法,但只是一个奇怪的语法.
It's oké, because I have it working with the ->with()
syntax but just an odd one.
谢谢. DS
推荐答案
View::make
函数采用 3 自变量,根据文档,它们是:
The View::make
function takes 3 arguments which according to the documentation are:
public View make(string $view, array $data = array(), array $mergeData = array())
在您的情况下,compact('selections')
是一个 4th 参数.它不会传递给视图,并且laravel会引发异常.
In your case, the compact('selections')
is a 4th argument. It doesn't pass to the view and laravel throws an exception.
另一方面,您可以根据需要多次使用with()
.因此,这将起作用:
On the other hand, you can use with()
as many time as you like. Thus, this will work:
return View::make('gameworlds.mygame')
->with(compact('fixtures'))
->with(compact('teams'))
->with(compact('selections'));
这篇关于laravel compact()和-> with()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!