2014-02-14 4 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 ключевое слово, давайте сделаем это.

Смежные вопросы