|
|
|
สอบถามวิธีการ insert data ลง DB หลาย ๆ row ในครั้งเดียว ของ laravel |
|
|
|
|
|
|
|
เคยทำแต่แค่ insert ทีละ row อ่ะค่ะ ไม่รู้ว่าวิธีการ insert หลาย ๆ row ค้นใน google แล้วเจอแบบให้ส่งเป็นแบบ array ไป แต่ไม่รู้ว่า syntax ควรจะเขียนรับส่งข้อมูลยังไงยังไง รบกวนด้วยนะคะ
อันนี้เป็น Code ส่วนหนึ่งของ table ในหน้า view ค่ะ
View
<td>
<select class="form-control m-select2" id="m_select2_1" name="ct_eq_qty">
@foreach($equipment as $value)
<option value="{{$value->eq_grp_id}}">
{{$value->eq_weight_unit_id}}
</option>
@endforeach
</select>
</td>
<td>
<select class="col-lg-12 form-control m-select2" id="m_select2_1" name="ct_eq_wrt_period_id">
@foreach($period as $value)
<option value="{{$value->period_code}}">
{{$value->period_des}}
</option>
@endforeach
</select>
<br>
<br>
<label class="m-checkbox m-checkbox--solid m-checkbox--brand">
<input type="checkbox" name="ct_eq_chk_install">
นับจากติดตั้ง
<span></span>
</label>
</td>
ส่วนของ route
route
Route::post('/contract/add_contract', "Web\ContractController@insert_contract");
อันนี้ในส่วนของ controller
Controller
$ct_id = '1';
$eq_id = '1';
$ct_eq_qty = request()->input("ct_eq_qty");
$ct_eq_qty = request()->input("ct_eq_qty");
$ct_eq_wrt_period_id = request()->input("ct_eq_wrt_period_id");
$ct_eq_chk_install = request()->input("ct_eq_chk_install") ? true : false;
$ct_eq_status = '0';
// $ct_eq_status = request()->input("ct_eq_status");
$resource = $pm_ct->insert_ct_eqiupment($ct_id,$eq_id,$ct_eq_qty,$ct_eq_wrt_period_id,$ct_eq_chk_install
,$ct_eq_status);
ส่วนของ Model ค่ะ
Model
function insert_ct_eqiupment($ct_id,$eq_id,$ct_eq_qty,$ct_eq_wrt_period_id,$ct_eq_chk_install
,$ct_eq_status)
{
DB::table('pm_ct_equipment');
// $pm_ct_eqiupment["eq_sn_id"] = $eq_sn_id;
$pm_ct_eqiupment["ct_id"] = $ct_id;
$pm_ct_eqiupment["eq_id"] = $eq_id;
$pm_ct_eqiupment["ct_eq_qty"] = $ct_eq_qty;
$pm_ct_eqiupment["ct_eq_wrt_period_id"] = $ct_eq_wrt_period_id;
$pm_ct_eqiupment["ct_eq_chk_install"] = $ct_eq_chk_install;
$pm_ct_eqiupment["ct_eq_status"] = $ct_eq_status;
$eqiupment = DB::table('pm_ct_equipment')->insert($pm_ct_eqiupment);
return $eqiupment;
}
Tag : PHP, PostgreSQL, JavaScript, Ajax, jQuery, Laravel Framework
|
|
|
|
|
|
Date :
2017-11-07 14:55:19 |
By :
warmrain |
View :
1917 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จริงก็ไม่ได้ซับซ้อนอะไรนะครับ เตรียมข้อมูลเป็น array หลายๆ rows แล้วก็ insert ปกติเลย
เช่น
$data = array(
array("name"=>"xzy","lastname"=>"abc"),
array("name"=>"xzz","lastname"=>"abb"),
);
Model::insert($data);
|
|
|
|
|
Date :
2017-11-08 15:20:18 |
By :
mangkunzo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 1 เขียนโดย : mangkunzo เมื่อวันที่ 2017-11-08 15:20:18
รายละเอียดของการตอบ ::
พอจะเข้าใจแล้วค่ะ แต่ติดตรงที่ส่งค่าจากส่วนของ view ไปที่ controller อ่ะค่ะ
อันนี้คือที่กำลังทำอยู่ get ค่าจาก datatable แล้วใช้ ajax ส่งเป็นแบบ json ไป แต่ไม่รู้ว่าขาดอะไรไปไหม
เพราะค่ามันไม่ถูกส่งไป
ajax
function saveData(){
var objdata = [];
var data = $("#grid").data('kendoGrid').dataSource.data();
for(var i = 0;i < data.length;i++){
objdata.push({
CHECK:data[i].CHECK,
FILTER:data[i].FILTER,
NAME:data[i].NAME,
NAME_SERIAL:data[i].NAME_SERIAL,
SERIAL:data[i].SERIAL,
TYPE:data[i].TYPE,
WASH:data[i].WASH
});
}
// console.log(JSON.stringify(objdata));
$.ajax({
url: "{{url('/contract/add_contract')}}",
type: 'POST',
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
dataType: 'json',
success: function(info){
console.log(info);
}
});
}
|
|
|
|
|
Date :
2017-11-08 15:48:25 |
By :
warmrain |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|