Php 试图获得财产';单价';非对象,但调试时会显示结果

Php 试图获得财产';单价';非对象,但调试时会显示结果,php,laravel,eloquent,Php,Laravel,Eloquent,当我想更新调用对象字段时获取的数据时出错,该对象在我使用ff结果进行调试时已被查询,但当我输入变量时,我想更新“unit\u price”=>$unit\u price出现错误,尝试获取非对象的属性“unit\u price” 代码 $pr\u dtl=\DB::table('dbsc.pur\u tra\u purchase\u request\u detail') ->get(); foreach($pr\u dtl作为$detail){ $qty\U pr=\DB::table('pur\

当我想更新调用对象字段时获取的数据时出错,该对象在我使用ff结果进行调试时已被查询,但当我输入变量时,我想更新“unit\u price”=>$unit\u price出现错误,尝试获取非对象的属性“unit\u price”

代码

$pr\u dtl=\DB::table('dbsc.pur\u tra\u purchase\u request\u detail')
->get();
foreach($pr\u dtl作为$detail){
$qty\U pr=\DB::table('pur\U tra\U PURCH\U request\U UNTABLE\U pr')
->其中('pr_id','',$request->transaction_id)
->其中('status',DB::raw(“4”))
->其中('item\u id',“=”,$detail->item\u id)
->总和(“数量”);
$qty\U po=\DB::table('pur\U tra\U PURCH\U request\U PROR\U po')
->其中('item\u id',“=”,$detail->item\u id)
->get();
$unit=\DB::table('pur\u tra\u purchase\u request\u pro\u po')
->其中('item\u id',“=”,$detail->item\u id)
->订货人(‘单价’、‘说明’)->限额(1)
->第一个();
$sum=$qty\U po->sum('total\U po');
$hasil=$qty\U pr-$sum;
$单价=$单价->单价;
ff(单价);
\DB::表('dbsc.pur\u tra\u PURE\u request\u detail')
->其中('id',$detail->id)->更新([
“未付数量”=>hasil美元,
“单价”=>美元单价
]);  
}
$this->where('id',$request->transaction\u id)->更新([
“状态”=>4,
]);

当null从(first())方法返回时,您应该注意它:


first()
可以返回
null
,这意味着查询没有任何结果……您需要对此进行检查,但在使用ff进行调试时($unit\u price);结果显示在控制台中您在循环中执行此操作,因此在其中一次迭代中,
first
为正在运行的查询返回
null
,因此我必须首先删除并更改get()?在尝试使用返回的内容之前,您需要实际检查它是否返回了除
null
之外的内容……如果没有结果,您必须决定该怎么做
$pr_dtl = \DB::table('dbsc.pur_tra_purchase_request_detail')
            ->get();
          
            foreach ($pr_dtl as $detail) {
                $qty_pr = \DB::table('pur_tra_purchase_request_outstanding_pr')
                ->where('pr_id',"<>" ,$request->transaction_id)
                ->where('status',DB::raw("4"))
                ->where('item_id',"=",$detail->item_id)
                ->sum('quantity');
                
                $qty_po = \DB::table('pur_tra_purchase_request_outstanding_pr_po')
                 ->where('item_id',"=",$detail->item_id)
                ->get();
                
                $unit= \DB::table('pur_tra_purchase_request_outstanding_pr_po')
                 ->where('item_id',"=",$detail->item_id)
                  ->orderBy('unit_price','desc')->limit(1)
                  ->first();

                $sum = $qty_po->sum('total_po');
              
                $hasil = $qty_pr-$sum;
                
                $unit_price=$unit->unit_price;
                ff($unit_price);
                \DB::table('dbsc.pur_tra_purchase_request_detail')
                ->where('id', $detail->id)->update([
                    'qty_outstanding_pr'=> $hasil,
                    'unit_price'=> $unit_price
                ]);  
            }
          
            $this->where('id',$request->transaction_id)->update([
              'status'=>4,
            ]);
 $unit= \DB::table('pur_tra_purchase_request_outstanding_pr_po')
                 ->where('item_id',"=",$detail->item_id)
                  ->orderBy('unit_price','desc')
                  ->first();
    if($unit!=null)
    {
      $sum = $qty_po->sum('total_po');
      $hasil = $qty_pr-$sum;
      $unit_price=$unit->unit_price;ff($unit_price);
      \DB::table('dbsc.pur_tra_purchase_request_detail')
      ->where('id', $detail->id)->update([
     'qty_outstanding_pr'=> $hasil,
     'unit_price'=> $unit_price
    ]);  
}