所以我有一个名为“订单”的表格,其中包含receipt_id,以便将其与名为“收据”的表格相关联。
我想将具有相同receipt_id的订单分组,因此在我的控制器中,我使用了此代码;
$orders = DB::table('orders')
->where('status', 0)
->groupBy('receipt_id')
->get();
return $orders;
但不幸的是,它只返回第一个。我觉得我不应该使用groupBy。
这是它目前返回的内容;
{
id: 1,
item: "12",
qty: 123,
price: "1823.00",
subtotal: "123.00",
receipt_id: 123,
status: 0,
created_at: null,
updated_at: null
}
编辑:
我只想查询收据表,这是我的刀片现在的样子,并评论了我想要完成的任务。
@forelse($orders as $order)
<div class="col-md-4">
<div class="panel panel-default">
<div class="panel-heading text-center">
{{$order->receipt_id}}
</div>
<div class="panel-body text-center">
<table class="table table-bordered table-responsive">
<thead>
<th>Order</th>
<th>Quantity</th>
</thead>
<tbody>
//all orders that has the same receipt_id will be showed here.
<tr>
<td>{{$order->item}}</td>
<td>{{$order->qty}}</td>
</tr>
</tbody>
</table>
</div>
<div class="panel-footer clearfix">
<button type="submit" class="btn btn-success pull-right" style="margin-right: 10px;">
<i class="fa fa-check-circle" aria-hidden="true"></i> Served
</button>
</div>
</div>
</div>
@empty
@endforelse
编辑:收据和订单的数据库结构。
收据;
Schema::create('receipts', function (Blueprint $table) {
$table->increments('id');
$table->decimal('total');
$table->decimal('vatable');
$table->decimal('vat');
$table->decimal('vat_exempt');
$table->decimal('vat_zero');
$table->decimal('amount_due');
$table->decimal('cash');
$table->decimal('change_due');
$table->integer('receipt_id');
$table->timestamps();
});
订单;
Schema::create('orders', function (Blueprint $table) {
$table->increments('id');
$table->string('item');
$table->integer('qty');
$table->decimal('price');
$table->decimal('subtotal');
$table->integer('receipt_id');
$table->boolean('status');
$table->timestamps();
});
答案 0 :(得分:1)
不知怎的,我设法解决了我的问题,我当然会分享我的代码。 :)
控制器;
$receipt_ids = DB::table('orders')
->where('status', 0)
->orderBy('receipt_id', 'asc')
->groupBy('receipt_id')
->get();
$orders = DB::table('orders')
->where('status', 0)
->orderBy('receipt_id', 'asc')
->get();
return view('kitchens.index', compact('receipt_ids','orders'));
叶片;
@extends('layouts.app')
<div class="panel panel-default">
<div class="panel-body" style="overflow: scroll; height:85vh;">
<div class="row">
@forelse($receipt_ids as $receipt_id)
<div class="col-md-4">
<div class="panel panel-default">
<div class="panel-heading text-center">
{{$receipt_id->receipt_id}}
</div>
<div class="panel-body">
<table class="table table-bordered table-responsive">
<thead>
<th>Name</th>
<th>Quantity</th>
</thead>
<tbody>
@foreach($orders as $order)
@if($receipt_id->receipt_id == $order->receipt_id)
<tr>
<td>{{$order->item}}</td>
<td>{{$order->qty}}</td>
</tr>
@endif
@endforeach
</tbody>
</table>
</div>
<div class="panel-footer clearfix">
<button type="submit" class="btn btn-success pull-right" style="margin-right: 10px;">
<i class="fa fa-check-circle" aria-hidden="true"></i> Served
</button>
</div>
</div>
</div>
@empty
@endforelse
</div>
</div>
</div>