Postingan lainnya
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>