在块函数 Laravel 上使用变量

Posted

技术标签:

【中文标题】在块函数 Laravel 上使用变量【英文标题】:Using variable on chunk function Laravel 【发布时间】:2014-08-07 21:45:27 【问题描述】:

我需要在 laravel 4 上的方法中使用一个变量,我如何将这个变量从 eloquent 传递给方法块?

$variableonmethod=array('value1','value2');
PreAlumno::chunk(200, function($prealumnos) 
        foreach ($prealumnos as $pre) 
           //do something with variableonmethod
        
);

【问题讨论】:

【参考方案1】:

如果你只喜欢阅读信息

$variableonmethod=array('value1','value2');
PreAlumno::chunk(200, function($prealumnos) use ($variableonmethod) 
    echo variableonmethod[0]; // prints `value1`
    variableonmethod[0] = 'Hola';
    echo variableonmethod[0]; // prints `Hola`
    foreach ($prealumnos as $pre) 
       //do something with variableonmethod
    
);
echo variableonmethod[0]; // prints `value1`

但是,如果您喜欢读取数组并更改它们的值(请查看 use 上的 &

$variableonmethod=array('value1','value2');
PreAlumno::chunk(200, function($prealumnos) use (&$variableonmethod) 
    echo variableonmethod[0]; // prints `value1`
    variableonmethod[0] = 'Hola';
    echo variableonmethod[0]; // prints `Hola`
    foreach ($prealumnos as $pre) 
       //do something with variableonmethod
    
);
echo variableonmethod[0]; // prints `Hola`

【讨论】:

太好了,这就是我要找的。​​span> 【参考方案2】:

您可以使用 use ($var) 传递数组来实现您的结果。

$variableonmethod=array('value1','value2');
PreAlumno::chunk(200, function($prealumnos) use ($variableonmethod) 
    foreach ($prealumnos as $pre) 
       //do something with variableonmethod
    
);

【讨论】:

以上是关于在块函数 Laravel 上使用变量的主要内容,如果未能解决你的问题,请参考以下文章

批量处理大量数据集Laravel

Laravel 使用 env 读取环境变量为 null 的问题

在 laravel 刀片的表单字段中使用变量

Laravel - 需要从模型中访问 BaseController 中设置的全局变量

自定义laravel函数dd()

Laravel 4.1 会话变量被随机遗忘