laravel 5.2 if else查询数据库

时间:2017-04-05 08:25:40

标签: laravel if-statement

卡在一个表单上,该表单允许用户在两​​个字段的选择中输入值。我可以使用一个字段查询数据库,但希望为数据库查询添加更多范围。使用下面的代码,当我尝试访问页面进行查询时,它只显示一个白色的屏幕。

public function index()
 {
   $data = $request->all();

   if(!empty($data['pstoreNum']))
   {
   $pstoreNum = $data['pstoreNum'];


    $result = DB::table('perfumes')->where('StoreNumber','=',$pstoreNum)
              ->get();

    return view('perfumes',compact('result'));
  } 
  else if(!empty($data['pweekNum']))
  {
      $pweekNum = $data['pweekNum'];


      $result = DB::table('perfumes')->where('WeekNumber','=',$pweekNum)
             ->get();

       return view('perfumes',compact('result'));
   }

  }

我的路由文件简单调用索引函数。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以在查询中添加查询功能,如此

public function index(Request $request)
{
    $data = $request->all();

    $result = \DB::table('perfumes')->where(function($query) use ($data) {
        if(!empty($data['pstoreNum'])) {
            $query->where('StoreNumber', '=', $data['pstoreNum']);
        }
        if(!empty($data['pweekNum'])) {
            $query->where('WeekNumber', '=', $data['pweekNum']);
        }
    })->get();

    return view('perfumes',compact('result'));

  }

然后,您可以使用一个查询并在各种条件下添加多个轮询。

https://laravel.com/docs/5.2/queries#advanced-where-clauses