我必须从现有的表数据中创建大量数据。每天大约有5000到10000条数据。
我的控制器:
$skus = Sku3d::find()->all();
foreach ($skus as $sku) {
$model = new Loghour3d();
$model->sku = $sku->sku;
$model->modeler = $sku->modeler;
$model->team = $sku->team;
$time = new \DateTime('now');
$today = $time->format('Y-m-d');
$model->day = $today;
$model->handover = $sku->handover;
$model->hour = $sku->totalhours;
$model->save();
}
Run Code Online (Sandbox Code Playgroud)
但是创建的时间不正确。示例:$sku->totalhours = 12但是$model->hour = 600我的代码是$model->hour = $sku->totalhours;. 所以我不知道从哪里来600。
还有没有更好的方法来完成这项任务,因为现在大约需要 15-20 分钟。
我有一个项目,他们有 3 个状态。现在我需要统计每天每种状态的数量和总数。
我可以单独列出它们。但不知道如何将它们结合起来。
这是我的代码:
$passed_counts = (new \yii\db\Query())
->select(['date', 'week', 'count(sku) as sku'])
->from('qa3d')
->where(['status' => 'Passed'])
->groupBy('date')->all();
$failed_counts = (new \yii\db\Query())
->select(['date', 'week', 'count(sku) as sku'])
->from('qa3d')
->where(['status' => 'Failed'])
->groupBy('date')->all();
$onhold_counts = (new \yii\db\Query())
->select(['date', 'week', 'count(sku) as sku'])
->from('qa3d')
->where(['status' => 'On Hold'])
->groupBy('date')->all();
$total_counts = (new \yii\db\Query())
->select(['date', 'week', 'count(sku) as sku'])
->from('qa3d')
->groupBy('date')->all();
Run Code Online (Sandbox Code Playgroud)
现在我可以将它们分别列在 4 个表中。我想像这样将它们组合在一张表中,但不知道如何。
date Passed Failed On Hold Total
2019-01-16 1 4 2 7
2019-01-17 1 0 2 3
请在这件事上给予我帮助。
谢谢。