如何为来自 URL 的查询字符串构建 Laravel Eloquent?
How to build Laravel Eloquent for Query String from URL?
我是 Laravel,
的新手
来自url的查询字符串可能是三种
- "Filter" 和 "Status":
http://localhost/products?filter=productName&value=Test+Product+1&status=A&action=Filter+Result
仅 - "Filter","Status" 将为空:
http://localhost/products?filter=productName&value=Test+Product+1&status=&action=Filter+Result
- "仅状态并且 "Filter" 将为空:"Filter" 和 "Status"
http://localhost/products?filter=&value=&status=A&action=Filter+Result
现在我可以从 Controller 使用 $inputQ = Request::input()
访问查询字符串
正常情况下php我可以像下面那样简单
$sql = 'SELECT * FROM products WHERE 1 = 1';
if(isset($_REQUEST['filter']) && $_REQUEST['filter'] != '' && $_REQUEST['value'] != ''){
$sql .= 'AND `'.$_REQUEST['filter'].'` = "'.addslashes($_REQUEST['value']).'"';
}
if(isset($_REQUEST['status']) && $_REQUEST['status'] != ''){
$sql .= 'AND `status` = "'.addslashes($_REQUEST['status']).'"';
}
$res = mysql_query($sql);
现在我需要构建 Laravel Eloquent 请帮助我。
我想您正在寻找这样的东西?我没有测试它,但我想它应该可以工作。
$query = DB::table('products')->where(1, '=', 1);
if(Input::has('filter') && Input::has('value')){
$query->where(Input::get('filter'), '=', Input::get('value'));
}
if(Input::has('status')){
$query->where('status', '=', Input::get('status'));
}
$res = $query->get();
我是 Laravel,
的新手来自url的查询字符串可能是三种
- "Filter" 和 "Status":
http://localhost/products?filter=productName&value=Test+Product+1&status=A&action=Filter+Result
仅 - "Filter","Status" 将为空:
http://localhost/products?filter=productName&value=Test+Product+1&status=&action=Filter+Result
- "仅状态并且 "Filter" 将为空:"Filter" 和 "Status"
http://localhost/products?filter=&value=&status=A&action=Filter+Result
现在我可以从 Controller 使用 $inputQ = Request::input()
正常情况下php我可以像下面那样简单
$sql = 'SELECT * FROM products WHERE 1 = 1';
if(isset($_REQUEST['filter']) && $_REQUEST['filter'] != '' && $_REQUEST['value'] != ''){
$sql .= 'AND `'.$_REQUEST['filter'].'` = "'.addslashes($_REQUEST['value']).'"';
}
if(isset($_REQUEST['status']) && $_REQUEST['status'] != ''){
$sql .= 'AND `status` = "'.addslashes($_REQUEST['status']).'"';
}
$res = mysql_query($sql);
现在我需要构建 Laravel Eloquent 请帮助我。
我想您正在寻找这样的东西?我没有测试它,但我想它应该可以工作。
$query = DB::table('products')->where(1, '=', 1);
if(Input::has('filter') && Input::has('value')){
$query->where(Input::get('filter'), '=', Input::get('value'));
}
if(Input::has('status')){
$query->where('status', '=', Input::get('status'));
}
$res = $query->get();