Laravel - 在View

时间:2017-06-21 10:55:01

标签: php mysql database laravel laravel-orm

在Laravel 5.4中,我有这些表:

sales_orders : id,order_code, customer_id

out_transactions : id, ref_id

ref_id指的是id的主键(即sales_orders)。

首先,我需要从sales_orders获取具有特定customer_id的所有行,即10;然后,对于每一行,我需要查询与out_transactions匹配的ref_id表与id sales_orders表。

在控制器show_all的{​​{1}}方法中,我有:

RequisitionController

$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

但是sql显示了意外的查询。 我在案件中得到的是

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 = 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` = ? 子句正在连接。连接子句会记住whereref_id的第1个,第2个等值以使用它们中的每一个,我猜(我只是无法在查询中打印for loop的确切值)

如何才能删除连接?或任何其他方式达到同样的目的?

1 个答案:

答案 0 :(得分:0)

首先在控制器中尝试此查询,并在预期结果通过此查询更改控制器后打印答案,并将结果传递到视图页面并根据需要预测结果。

    $result  = DB::table('sales_orders')->join('out_transactions','sales_orders.id','=','out_transactions.ref_id')->where('sales_orders.customer_id',10)->get();