2017-04-16 62 views
0

我有一个数组这样的:发送阵列与紧凑到视图

$currentSelection = array('category' => $request->category, 'location' => $request->location); 

当我发送此,以查看这样的:

return view('index', compact('currentSelection')); 

我得到这样的信息:

未定义的可变电流选择

如何使用compact()正确发送数组?

+0

你确定'$ currentSelection'是在某个地方定义的吗? ['compact'不会发出警告,如果它不存在](http://php.net/manual/en/function.compact.php),那么你的底层'view'函数可能会窒息。 – Mark

+0

@马克你是对的,这确实是一个范围问题。我如何关闭这个问题? – Eisenheim

+0

我已经提前并将其标记。很高兴你解决了你的问题! – Mark

回答

0

试试这个:

return view('index')->with(compact('currentSelection')); 

return view('index', array('currentSelection' => $currentSelection)); // the second param is an array, you can pass multiple elements in this array 

,你可以查看刀片视图访问它的值,如:

{{ $currentSelection }} 

注:在你的情况$currentSelection是一个array,所以你必须使用foreach()得到它的所有元素

+0

我还有其他几个对象,包含从Laravels雄辩模型返回的结果,为了简单起见,我在这里忽略了它们。 我想将它们与$ currentSelection一起发送,而不使用()方法,并仅使用compact(),这可能吗? – Eisenheim

0

尝试 返回视图('index',compact($ currentSelection));.

作为每Eisenheim评论:

编辑成返回视图( '索引',紧凑( 'VARNAME',$ currentSelection));

+0

当我添加另一个变量时不起作用,如下所示: return view('index',compact('myNewVar',$ currentSelection)); – Eisenheim

0

请试试这个:

return view('index', compact(['currentSelection'])); 
0

你可以试试这个:

return view('index', [ 
    'currentSelection' => $currentSelection, 
]); 

希望这对你的工作!