Cuando utiliza una función de devolución de llamada en PHP, la función tiene su propio alcance y no puede acceder a las variables desde fuera de su alcance.
$foo = true;
DB::collection('something')->raw(function ($collection) {
echo $foo;// $foo is undefined here, this create an error
});
echo $foo;// here it work
Pero puede alimentar su devolución de llamada con variables usando el PHP use
palabra clave
:
$foo = true;
DB::collection('something')->raw(function ($collection) use ($foo) {
echo $foo;// now it works
});