【问题标题】:How can I get variable from chunk function of query builder in laravel 5.2?如何从 laravel 5.2 中查询生成器的块函数中获取变量?
【发布时间】:2016-07-08 21:47:24
【问题描述】:

我正在尝试使用 laravel 5.2 查询生成器的块方法处理“消息”表中的一些记录。但我无法在查询生成器之外的数组中获取已处理的 id。

我可以通过将变量声明为全局变量来访问它,但还有其他方法吗?

在块完成后我需要这个,因为如果我在同一个循环中更新记录,那么块将跳过记录。因为块就像分页一样工作。

使用全局(工作):

global $m_ids;

DB::table("messages")
    ->where('processed','0')   
    ->chunk(100, function ($messages){
                    foreach ($messages as $message) {
                        $GLOBALS['$m_ids'][] = $message->id;
                    }
                });

echo "<pre>"; print_r($GLOBALS['$m_ids']); die;

【问题讨论】:

  • 我得到了答案。它通过“function ($messages) use (&$p_ids)”解决。

标签: php laravel laravel-5.2


【解决方案1】:

更改代码:

$m_id = [];
DB::table("messages")
->where('processed','0')   
->chunk(100, function ($messages) use(&$m_id){
                foreach ($messages as $message) {
                    $m_id[] = $message->id;
                }
            });

echo "<pre>"; print_r($m_id); die;

【讨论】:

    猜你喜欢
    • 2017-01-30
    • 1970-01-01
    • 2017-05-03
    • 2019-09-25
    • 2018-05-16
    • 1970-01-01
    • 2014-12-15
    • 2017-04-22
    • 2016-11-07
    相关资源
    最近更新 更多