2015-03-03 65 views
1

我似乎無法訪問Breadcrumb實例中的$ module。我怎樣才能訪問它?無法在類實例中訪問變量

$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 2015-03-03 10:44:55

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關鍵字的一個很好的解釋。