简体   繁体   English

Laravel:如何使用查询构建器添加where子句?

[英]Laravel: how to add where clause using query builder?

I have this query, made using Laravel query builder: 我有这个查询,使用Laravel查询生成器:

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

That corresponds to: "SELECT * from elements WHERE type=1" 这对应于:“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: 使用经典的php我会做类似的事情:

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

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

How can I do that using Laravel Query Builder? 如何使用Laravel Query Builder执行此操作?

Thank you. 谢谢。

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 . 另外,请检查此答案

$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 :) 就像你使用多个where子句:)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM