繁体   English   中英

Laravel - 在 View 中使用 Eloquent where 方法

[英]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_idsales_orders表的id匹配。

在控制器RequisitionControllershow_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 loopref_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM