2017-03-18 19 views
2

我正在致力於laravel從數據庫中獲取數據並將該數據或數據數組存儲到變量中,如$ tasks從數據庫中存儲任務表的數據直到一切正常,但在處理$ task變量時,有必要使用「compact」函數?如何在LARAVEL中使用Views而不使用PHP的「緊湊」功能

而且任何人都可以解釋這種

Route::get('/test', function() { 

$data = [ 
       'name' => 'Vrushal', 
       'last' => 'Raut', 
       'tasks' => [ 
           'Programming', 
           'UI/UX Developement', 
           'Cloud Expert' 
          ] 
      ]; 
      //return view('templates/test', compact($data)); //NOT WORKING 
      //return view('templates/test', $data); // ITS WORKING 
      return View::make('templates/test',$data); // ITS WORKING 
}); 

以及與數據庫PLZ提前說明這個

Route::get('/tasks', function(){ 

$tasks = DB::table('tasks')->get(); 

return view('templates/tasks', compact('tasks')); // ITS WORKING 
//return View::make('templates/test',$tasks); // NOT WORKING 
}); 

謝謝!

+0

caveat,'compact'忽略未設置的變量。 – lagbox

+0

實際上,'compact'將一些變量及其值作爲一個數組。 –

+0

**我想要數據庫代碼i的解決方案。(**)();(); return view('templates/tasks' ,compact('tasks')); //它的工作 //返回View :: make('templates/test',$ tasks); // NOT WORKING });' –

回答

2

compact('data')相同['data' => $data],這樣一來就能訪問Vrushal價值,你需要做到這一點的看法:

{{ $data['name'] }} 

當你這樣做:

View::make('templates/test', $data); 

你可以得到Vrushal值與:

{{ $name }} 
1

//return view('templates/test', compact($data)); //NOT WORKING它不工作,因爲您不需要緊湊元素的美元符號。它應該看起來像這樣:

return view('templates.test', compact('data'));然後你可以通過$ data []變量在視圖內訪問它。

其他方式:

return view('templates.test')->with('variable', $data);和考慮到與訪問該$variable[]

2

緊湊 - 創建包含變量及其值 手冊http://php.net/manual/en/function.compact.php

<?php 

$city = "San Francisco"; 
$state = "CA"; 
$event = "SIGGRAPH"; 

$result = compact("event", "city", "state"); 
print_r($result); 
//return view('templates/test', compact("event", "city", "state")); // ITS WORKING 

結果

Array 
(
    [event] => SIGGRAPH 
    [city] => San Francisco 
    [state] => CA 
) 
陣列
$arr = array(
    "city" => "San Francisco", 
    "state" => "CA", 
    "event" => "SIGGRAPH" 
); 

extract($arr);  
$result = compact(array_keys($arr)); 
print_r($result); 
//return view('templates/test', compact(array_keys($arr)); // ITS WORKING 

結果

Array 
(
    [event] => SIGGRAPH 
    [city] => San Francisco 
    [state] => CA 
) 

$arr = array(
    "city" => "San Francisco", 
    "state" => "CA", 
    "event" => "SIGGRAPH" 
); 
print_r($arr); 
//return view('templates/test', $data); // ITS WORKING 

結果

Array 
(
    [event] => SIGGRAPH 
    [city] => San Francisco 
    [state] => CA 
) 

$arr = array(
    "city" => "San Francisco", 
    "state" => "CA", 
    "event" => "SIGGRAPH" 
); 
$result = compact($arr); 
print_r($result); 
//return view('templates/test', compact($arr)); //NOT WORKING 

結果

Array 
(

)