2014-02-14 75 views
0

我試圖通過變量與這條路線,它的工作原理:Laravel 4:變量在路線

Route::get('/path', array("as"=>"myname", function(){ 
    $data = include app_path()."/views/myconfig.php"; 
    return View::make('pageview',$data); 
})); 

,因爲我需要使用最多航線的數據,我想到外面移動$data所以它看起來更乾淨。

$data = include app_path()."/views/myconfig.php"; 

Route::get('/path', array("as"=>"myname", function(){ 
    return View::make('pageview',$data); 
})); 

Route::get('/path2', array("as"=>"myname2", function(){ 
    return View::make('pageview2',$data); 
})); 

但是,這最終給我錯誤說,Undefined variable: data。爲什麼它將它變得不可讀?你有什麼建議我可以做到的更好的方式?

謝謝。

回答

1

沒有關係Laravel,它是PHP本身的

$data = include app_path()."/views/myconfig.php"; 

Route::get('/path', array("as"=>"myname", function() use ($data){ 
    return View::make('pageview',$data); 
})); 

Route::get('/path2', array("as"=>"myname2", function() use ($data){ 
    return View::make('pageview2',$data); 
})); 

爲什麼不能在你的代碼工作的事?由於範圍。 $data被定義爲回調函數(或閉包,稱之爲任何你想要的)作用域 - 它不可用於回調。 use關鍵字讓你這樣做。