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.
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.