首页 > 解决方案 > 如何在 Laravel Eloquent 中处理空值?

问题描述

我是 laravel 的新手。实际上我想过滤一些关于 state 和 typeofsupply 列的数据。就像如果 state="south australia" 和 typeofsupply="Inverter & Storage" 然后向我显示这两个值上都存在的这些行。如果我像 state="south australia" 和 typeofsupply=Nul 进行过滤。那么这些行将显示谁南澳大利亚的存在状态和供应类型应该是列表中的任何一个(所有类型的供应)

public function show(Request $request){

    $typeofsupply='';
    $state='';
    if(!$request->all()==Null) {

        if(!$request->state==Null) {
            $state=$request->state;
        }
        if(!$request->typeofsupply==Null) {
            $typeofsupply=$request->typeofsupply;
        }

        $items = Postjob::where('state',$state)
                        ->where('typeofsupply',$typeofsupply)
                        ->get();
        dd($items);

标签: mysqllaravel-5eloquent

解决方案


这就是我解决问题的方法......

$items = Postjob::when($state!=Null,function ($query) use ($state) {
                    return $query->where('state', $state);})->
                when($typeofsupply!=Null,function ($query) use ($typeofsupply) {
                    return $query->where('typeofsupply', $typeofsupply);})->get();

推荐阅读