2017-04-05 78 views
0

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

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

你可以像这样

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

+0

错误消息未定义变量:请求 – PA060

+0

这一定是从上你提供的标记的误差。尝试添加请求$请求到函数。只要你张贴到功能索引 –

+0

感谢您的答复。使用请求$请求,然后错误消息的数据库没有找到所以添加使用数据库和作品。 – PA060