Chr*_*gia 7 php mysql laravel eloquent laravel-4
我从临时表中提取大约10万条记录,对数据进行一些细微修改,下载照片,然后将需要保存的字段放在"主"表中.这很快导致我的应用程序因内存不足而崩溃.
我阅读了关于使用chunk()和Laravel雄辩的ORM的非常简短的文档,但是不知道如何在我的课堂上开始实现它.
这是我目前正在做的事情:
public function fire()
{
// Turn off query logging
DB::connection()->disableQueryLog();
$feeds = RetsFeed::where('active','=',1)->get();
foreach ($feeds as $feed)
{
$class = "TempListing{$feed->board}";
$listings = $class::orderBy('MatrixModifiedDT','desc')->get();
$listings->each(function($listing) use ($feed) {
ListingMigrator::migrateListing($listing,$feed);
echo "Feed: $feed->board\r\n";
echo "SubcondoName: $listing->SubCondoName\r\n";
echo "Development: $listing->Development\r\n";
echo "\r\n";
});
}
}
Run Code Online (Sandbox Code Playgroud)
每个提要(或数据源)都被转储到不同家务中的临时表中.这很好.然后,我从一个表中获取所有hte列表(平均大约30k)并运行我的ListingMigrator方法.
在这个例子中我把块放在哪里?它会取代这条线:
$listings = $class::orderBy('MatrixModifiedDT','desc')->get();
Run Code Online (Sandbox Code Playgroud)
我并不完全理解雄辩文档中的结束.这就是他们要说的全部内容,这里是Laravel网站的代码示例:
User::chunk(200, function($users)
{
foreach ($users as $user)
{
//
}
});
Run Code Online (Sandbox Code Playgroud)
cee*_*yoz 16
该chunk调用应该替换该get调用 - 它被设计为处理pre-get()查询构建器对象.
$listings = $class::orderBy('MatrixModifiedDT','desc');
$listings->chunk(200, function($listings) use($feed) {
$listings->each(function($listing) use ($feed) {
ListingMigrator::migrateListing($listing,$feed);
echo "Feed: $feed->board\r\n";
echo "SubcondoName: $listing->SubCondoName\r\n";
echo "Development: $listing->Development\r\n";
echo "\r\n";
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11908 次 |
| 最近记录: |