我的代码如下:
$data = DB::table('blogs')
->where('title', '=', $title);
现在,我想在上面初始化之后添加更多方法。我想在下面添加一些内容,以便将其他内容添加到数据中。
$input = TRUE;
$data = DB::table('blogs')
->where('title', '=', $title);
if( $input ){
$data->where('description','=', $description); //but then, this doesn't work
}
我希望在orderby
,where
之内添加更多内容。但是,它不起作用。
这样做的正确方法是什么?感谢
答案 0 :(得分:3)
您忘记为$ data
分配添加的条件尝试以下代码
$input = TRUE;
$data = DB::table('blogs')
->where('title', '=', $title);
if( $input ){
$data = $data->where('description','=', $description);
}
如果需要添加更多条件:
$input1 = TRUE;
if( $input1 ){
$data = $data->where('other_column','=', $other_var);
}
,最后通过
获取详细信息$data = $data->get();
希望这会有所帮助。
答案 1 :(得分:1)
你可以这样做 -
if(your_condition)
{
$whereCondition = "table.description ='".$description."'"; // for any where condition
}
else
{
$whereCondition = '1=1'; //for no where condition
}
$data = DB::table('blogs')
->where('title', '=', $title)
->whereRaw($whereCondition)
->orderBy('table.column','DESC')
->get();
希望这对你有所帮助。