2017-04-16 88 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, 
]); 

希望這對你的工作!