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

时间:2013-11-24 19:54:18

标签: php mysql sql laravel-4 query-builder

我有使用Laravel查询构建器进行此查询:

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

对应于:“SELECT * from elements WHERE type = 1”

现在,在某些情况下,我需要添加第二个创建查询的位置:

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

使用经典php我会做类似的事情:

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

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

如何使用Laravel Query Builder进行此操作?

谢谢。

2 个答案:

答案 0 :(得分:28)

您可以尝试这样的事情

$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();

另外,请检查this answer

答案 1 :(得分:0)

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

就像你使用多个where子句:)