Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
Fungsi SUM Laravel
gan saya mau nanya nih. saya barusan bikin 2 proses insert dalam satu fungsi. maksud saya saat data diinput ke proses 1, data itu juga harus terinput ke proses 2.
ini code fungsi controllernya
foreach($data as $key => $val){
$price = product::where('id', $val->product_id)->first();
$prc = $price->price;
$pro = new order();
$pro->order_number = $b;
$pro->product_id = $val->product_id;
$pro->user_id = $val->user_id;
$pro->quantity = $val->qty;
$pro->sub_total = $prc * $val->qty;
$pro->code = $a;
$pro->save();
$ord = new order_detail();
$ord->order_number = $pro->order_number;
$ord->total_price = sum($pro->sub_total);
$ord->save();
}
ini pesan errornya
Call to undefined function App\Http\Controllers\sum()
gimana cara ngatasinnya? tolong dibantu ya gan.
4 Jawaban:
sepemahaman saya sum() itu adalah method dari collections mas. mungkin bisa dilakukan operasi sum (penjumlahan) manual. CMIIW
Coba include dulu db nya, use Illuminate\Support\Facades\DB;
<pre> //contoh, disesuaikan aja $purchases = DB::table('transactions') ->join('categories', 'transactions.category_id', '=', 'categories.id') ->where('categories.kind', '=', 1) ->sum('transactions.amount'); </pre>Semoga berhasil
kalau order_detail hanya menyimpan nomor order dan total price, eksekusinya diluar foreach aja gan. sebelum foreach buat variable awal untuk total
<pre> $total = 0; foreach ($data as $key => $value) { ... ... $pro->save(); $total += $pro->sub_total; } $ord = new order_detail(); $ord->order_number = $b; $ord->total_price = $total; $ord->save(); </pre>