[英]How to use 'get' method with the where eloquent in laravel
[英]Laravel - use the Eloquent where method from within View
在 Laravel 5.4 中,我有這些表:
sales_orders : id,order_code, customer_id
out_transactions : id, ref_id
ref_id
指的是sales_orders
的主鍵(即id
)。
首先,我需要從sales_orders
具有特定customer_id
所有行,即 10; 然后對於每一行,我需要查詢out_transactions
表,將其ref_id
與sales_orders
表的id
匹配。
在控制器RequisitionController
的show_all
方法中,我有:
$query_sales_order=SalesOrder::where('customer_id',10);
$requisitions = $query_sales_order->get();
$model=InventoryOutTransaction::query();
return view('admin.requisition.requisition',compact('requisitions')->withModel($model);
在requisition.blade.php
里面,我有:
foreach($requisitions as $aP) {
$requisition_id = $aP->id;
$inventory_out_info = $model->where('ref_id', $requisition_id);
echo '<br/> sql = '.$inventory_out_info->toSql();
$inventory_out_result = $inventory_out_info->get();
$inventory_out_info_id = 0;
foreach ($inventory_out_result as $inventory_out_result_indiv) {
$inventory_out_info_id = $inventory_out_result_indiv->id;
echo ' inventory_out_info_id = '.$inventory_out_info_id;
}
}
但是 sql 顯示了意外查詢。 我在一個案例中得到的是
sql = select * from `out_transactions` where `ref_id` = ?
sql = select * from `out_transactions` where `ref_id` = ? and `ref_id` = ?
sql = select * from `out_transactions` where `ref_id` = ? and `ref_id` = ? and `ref_id` = ?
所以你可以看到where
子句被連接起來了。 並且連接子句會記住for loop
中ref_id
的第一個、第二個ref_id
以使用它們中的每一個,我猜(我只是無法在查詢中打印?
的確切值)。
我怎樣才能刪除串聯? 或任何其他方式來達到同樣的目的?
首先在您的控制器中嘗試此查詢,並在您的預期結果出現后打印答案,使用此查詢更改您的控制器並將結果傳遞到視圖頁面並根據您的需要 foreach 結果。
$result = DB::table('sales_orders')->join('out_transactions','sales_orders.id','=','out_transactions.ref_id')->where('sales_orders.customer_id',10)->get();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.