如何在 laravel dB 中挂钩方法
How to hook a method in laravel dB
我有下面的代码:
$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
}
我想在 if 中添加更多内容,就像 orderby
、where
一样。但是,它不起作用。
这样做的正确方法是什么?谢谢
你可以这样做 -
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();
希望对您有所帮助。
您忘记将添加的条件分配给 $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();
希望这会有所帮助。
我有下面的代码:
$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
}
我想在 if 中添加更多内容,就像 orderby
、where
一样。但是,它不起作用。
这样做的正确方法是什么?谢谢
你可以这样做 -
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();
希望对您有所帮助。
您忘记将添加的条件分配给 $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();
希望这会有所帮助。