【发布时间】:2021-09-08 04:05:19
【问题描述】:
所以我有一个自定义的工匠命令,我编写了该命令来填充一列并将其存储到一个新列中。我实现了一个进度条,由于某种原因,当命令完成 50% 时,它会跳转到 100%。问题是它只对一半数据执行了代码。
我正在使用 chunk() 函数将数据分成 1,000 行的块,以消除内存耗尽问题。这是必要的,因为我的数据集非常大。
我查看了我的 PHP 错误日志、MySQL 错误日志和 Laravel 日志。我找不到与此命令有关的任何错误或日志行。任何关于新地方的想法甚至可以开始寻找问题。
$jobTitles = ModelName::where($columnName, '<>', '')
->whereNull($slugColumnName)
->orderBy($columnName)
->chunk(1000, function($jobTitles) use($jobCount, $bar, $columnName, $slugColumnName)
{
foreach($jobTitles as $jobTitle)
{
$jobTitle->$slugColumnName = Str::slug($jobTitle->$columnName);
$jobTitle->save();
}
$bar->advance(1000);
});
$bar->finish();
【问题讨论】:
-
如果没有看到或了解更多关于您的循环的信息
-
请edit您的问题并在那里添加代码。 cmets 中的代码很难阅读/理解
-
好吧,对不起就行了
-
@BrianThompson 我已按要求添加了代码
标签: php laravel laravel-artisan