Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为在拉雷维尔接收部分交付的产品创造条件_Php_Laravel_If Statement_Conditional Statements - Fatal编程技术网

Php 为在拉雷维尔接收部分交付的产品创造条件

Php 为在拉雷维尔接收部分交付的产品创造条件,php,laravel,if-statement,conditional-statements,Php,Laravel,If Statement,Conditional Statements,这是我尝试接收应用程序部分交付的第二天。我和你们这些大师们在这里碰碰运气 我有这两张表,第一张是order_items表 此表包含采购订单中的项目。另一张桌子是仓库 其中包含部分接收的项目 我得到了逻辑,我必须对仓库1.order\u item\u id进行分组,这样我就可以从order\u number\u id=22中得到项目的总和,这是order\u items表中的id。为了向大家展示,下面是我的代码 public function viewdeliveryItems($id) {

这是我尝试接收应用程序部分交付的第二天。我和你们这些大师们在这里碰碰运气

我有这两张表,第一张是order_items表

此表包含采购订单中的项目。另一张桌子是仓库

其中包含部分接收的项目

我得到了逻辑,我必须对仓库1.order\u item\u id进行分组,这样我就可以从order\u number\u id=22中得到项目的总和,这是order\u items表中的id。为了向大家展示,下面是我的代码

public function viewdeliveryItems($id)
{
    $partialDeliveries = Warehouse1stocks::where('order_id', '=', $id)
       ->select(
                'order_item_id',
                DB::raw('SUM(stock_in_qty) as stock_in_qty'))->groupBy('order_item_id')->get();
                // DB::raw('SUM(stock_out_qty) as stock_out_qty'))->groupBy('order_item_id')->get();


    $order = Orders::find($id);
    $orderItems = $order->orderItems;


    $warehouse1stocks = Warehouse1stocks::all('order_id','order_item_id','stock_in_qty')->where('order_id','=',$id);

    return view('orders.delivery')->with('order', $order)
                                  ->with('warehouse1stocks', $warehouse1stocks)
                                  ->with('partialDeliveries', $partialDeliveries);
}
在我的代码中,您将看到我将order\u item\u id分组并调用了order items,但您可以看到它们唯一的链接是order\u id

只是为了给你展示一种有说服力的联系, 订单项模型

仓库库存模型

在我的blade中,正如我在介绍中提到的,我已经用了将近两天的时间完成了这项工作,我刚刚开始编写我自己的代码,这就是为什么我要依赖谷歌上提供的教程和建议中的大部分代码库,我想我已经尝试了太多的方法,由于绝望,我最终选择了这种方法

@foreach($order->orderItems as $key=>$orderItem)
<tr>
    <td>{{ $orderItem->product_code }}</td>
    <td>{{ $orderItem->product_name }}</td>

    <td>
    @foreach($partialDeliveries as $partialDelivery)

            @if($partialDelivery->order_item_id == $orderItem->id)
                @php
                $remainingDeliveries = $orderItem->quantity - $partialDelivery->stock_in_qty;
                @endphp                    
            @else
                @php
                $remainingDeliveries = $orderItem->quantity;
                @endphp
            @endif


                {!! Form::number('stock_in_qty[]', $remainingDeliveries, 
                                ['id'=>'stock_in_qty_'.$orderItem->id]) !!} 
    @endforeach
    </td>
    ....
</tr>
@endforeach
我不能解释一切,因为我不能:


谢谢@Watercatman

如果你问为什么数量栏上的数量没有给你一个表格,或者为什么输入的返回值不正确,我可以看出你有一些问题。第一个问题是,您正在同一个空间中使用相同的ID创建n+1个数字输入表单项。这可能会阻止它们显示,并且永远不会生成可用的表单。这:

{!! Form::number('stock_in_qty[]', $remainingDeliveries, 
                            ['id'=>'stock_in_qty_'.$orderItem->id]) !!} 
在你的内部for循环中。因此,对于该循环中的每个$partialDelivery,您将创建多个编号输入,其id完全相同'stock\u in\u qty'。$orderItem->id


我不能代表sql说话,因为我不知道什么是转储,但它确实可以帮助您计算控制器中剩余的$remainingDeliveries。在较大的循环中循环可能不是正确或干净地获得计算的最简单方法。但是,如果必须在blade文件中执行此操作,请将输入的数字移到@foreach循环之外,这样您就有了一个id的输入。

您是正确的@Watercayman。我只是把数字字段移到循环外。但我现在仍然面临的是,如果条件不相等,剩余的变量是未定义的。。。
@foreach($order->orderItems as $key=>$orderItem)
<tr>
    <td>{{ $orderItem->product_code }}</td>
    <td>{{ $orderItem->product_name }}</td>

    <td>
    @foreach($partialDeliveries as $partialDelivery)

            @if($partialDelivery->order_item_id == $orderItem->id)
                @php
                $remainingDeliveries = $orderItem->quantity - $partialDelivery->stock_in_qty;
                @endphp                    
            @else
                @php
                $remainingDeliveries = $orderItem->quantity;
                @endphp
            @endif


                {!! Form::number('stock_in_qty[]', $remainingDeliveries, 
                                ['id'=>'stock_in_qty_'.$orderItem->id]) !!} 
    @endforeach
    </td>
    ....
</tr>
@endforeach
@if (isset($partialDeliveries[$key]))
    @foreach($partialDeliveries as $partialDelivery)
        @if($partialDelivery->order_item_id == $orderItem->id)
            @php
                $remainingDeliveries = $orderItem->quantity - $partialDelivery->stock_in_qty;
            @endphp
        @endif
    @endforeach
@endif
@if (!isset($partialDeliveries[$key]))
    @php
        $remainingDeliveries = $orderItem->quantity;
    @endphp
@endif
{!! Form::number('stock_in_qty[]', $remainingDeliveries, 
                            ['id'=>'stock_in_qty_'.$orderItem->id]) !!}