Laravel: how to add where clause using query builder?

[亡魂溺海] 提交于 2019-12-10 03:01:06

问题


I have this query, made using Laravel query builder:

$rows = DB::table('elements')->where('type', 1);

That corresponds to: "SELECT * from elements WHERE type=1"

Now, in some cases I need to add a second Where to create a query like this:

SELECT * from elements WHERE type=1 AND lang='EN'

Using classic php I'd do something like:

$sql = 'SELECT * from elements WHERE type=1';

if($var==true) $sql .= " AND lang='EN'";

How can I do that using Laravel Query Builder?

Thank you.


回答1:


You may try something like this

$query =  DB::table('elements');
$query->where('some_field', 'some_value');

// Conditionally add another where
if($type) $query->where('type', 1);

// Conditionally add another where
if($lang) $query->where('lang', 'EN');

$rows = $query->get();

Also, check this answer.




回答2:


$userId = Auth::id();
$data['user_list'] =DB::table('users')->
select('name')->
where('id','!=',$userId)->
where('is_admin','!=','1')->
get();

like that you use multiple where clause :)



来源:https://stackoverflow.com/questions/20180169/laravel-how-to-add-where-clause-using-query-builder

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!