Tôi đã đi vào một tình huống mà tôi cần phải lưu trữ các đối tượng với các đối tượng liên quan của chúng trong Laravel 4. Về cơ bản những gì tôi đang làm là chèn một số lượng lớn các đối tượng. có nhiều thẻ (quan hệ nhiều-nhiều).Các đối tượng chèn hàng loạt với các quan hệ trong Laravel-4
Dưới đây là một số mẫu mã, hãy chú ý các ý kiến TODO:
[...]
$batchData = array();
$rowCount = 0;
foreach ($dataArray as $key => $row) {
[...]
// parsing row from CSV
$obj = array();
foreach ($row as $attribute => $value) {
$obj['template_id'] = $templateId;
$obj['batch_id'] = $batchId;
$obj['user_id'] = $confideUserId;
$obj['created_at'] = new \DateTime;
$obj['updated_at'] = new \DateTime;
// Attach Tags if any exist
if ($attribute === 'tags') {
if (!is_null($value) || !is_empty($value)) {
$tags = explode(":", $value);
// TODO: Get tag ID for each tag and add to $obj['tags'] array
}
}
}
// add object to array
$batchData[$rowCount] = $obj;
++$rowCount;
if ($rowCount == \Config::get('app.maxCSV')) {
try {
// TODO: Batch Insert With Related tags??
$obj_model_name::insert($batchData);
} catch (Exception $e) {
return false;
}
$rowCount = 0;
$batchData = array();
}
}
[...]
tôi có thể chèn từng đối tượng một-by-một với các mối quan hệ của họ, nhưng vấn đề là chúng ta số lượng lớn chèn các đối tượng này thông qua CSV, nơi chúng ta có thể có từ hàng trăm đến hàng trăm ngàn vật thể.
Bất kỳ ai cũng có bất kỳ mẹo nào?
FYI cơ sở dữ liệu được sử dụng là MSSQL 2012.
Chúc mừng,