关于预加载条件约束的问题 
                            
                                                    
                        
                    
                    
  
                    
                    如代码所示, 想实现的效果是通过订单信息反查出warehouse的数据, 应当如何通过模型实现, 还请各位赐教
Warehouse模型:
public function order(): Relations\BelongsTo
{
    return $this->belongsTo(Order::class, 'oid')
        ->select('id', 'order_number', 'shipping_type', 'memo', 'state');
}
查询方法:
 public function record(Request $request): Response
    {
        $state = $request->get('state');
        $wd = $request->get('wd');
        $order = Warehouse::with(['orderItem', 'order' => function ($query) use ($wd) {
            if ($wd) {
                if (is_numeric($wd)) {
                    if (strlen($wd) == 11) {
                        $field = 'receive_mobile';
                    } else {
                        $field = 'order_number';
                    }
                } else {
                    $field = 'customer_name';
                }
                $query->where($field, $wd);
            }
            return $query;
        }])->when($state, function ($query, $state) {
            if (in_array($state, Warehouse::state())) {
                // 指定状态
                return $query->where('state', $state);
            } else {
                // 仓库所有状态
                return $query->whereIn('state', Warehouse::state())->orderByRaw('state desc,id');
            }
        })->where('eid', $this->eid)
            ->select('id', 'oid', 'state', 'created_at', 'stock_in_at', 'stock_out_at')
            ->paginate($request->get('pageSize'), [], 'page', $request->get('current'));
        return $this->success(apiResource($order));
    } 
           
         
                     
                     
            
 
             这里建议不做 if 判断,直接
 
这里建议不做 if 判断,直接   
             
             
           
           关于 LearnKu
                关于 LearnKu
               
                     
                     
                     粤公网安备 44030502004330号
 粤公网安备 44030502004330号 
 
推荐文章: