2015-03-03 2 views
1

Я не могу получить доступ к $ module внутри экземпляра Breadcrumbs. Как я могу получить к нему доступ?Невозможно получить доступ к переменной внутри экземпляра класса

$modules = Module::all(); 

foreach ($modules as $module) 
{ 
    Breadcrumbs::register($module->name, function($b) 
    { 
     $b->parent('modules'); 
     $b->push($module->display_name, url('/module/' . $module->name)); 
    }); 
} 

ответ

2

Это вопрос с переменной областью. Для того, чтобы иметь возможность получить доступ к локальным переменным внутри крышки вы должны вводить их с use(...)

Breadcrumbs::register($module->name, function($b) use ($module) 
{ 
    $b->parent('modules'); 
    $b->push($module->display_name, url('/module/' . $module->name)); 
}); 

This answer обеспечивает очень хорошее объяснение всей темы

+0

Это разрешило это. Спасибо за ваш ответ и объяснение! – ssangki

0
$modules = Module::all(); 

foreach ($modules as $module) 
{ 
    Breadcrumbs::register($module->name, function($b) use ($module) 
    { 
     $b->parent('modules'); 
     $b->push($module->display_name, url('/module/' . $module->name)); 
    }); 
} 

Следовательно use ключевых слов.

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