TP5 使用DB查询 如何使用if判断?我想实现if中的效果  求具体写法  

 $list = Db::table('fa_shopping')
                ->alias('a')
                ->join('fa_my2_commodity b', 'b.id = a.commodity_id')
                ->where('a.type', $type)
                ->where('a.user_id', $user_id)
                if('a.status_type' == 1 ){
                    ->field('b.name')                    
                }else{
                    ->field('a.name')   
                }
                ->select();

我想实现if中的效果  求具体写法  

$list = Db::table('fa_shopping')

->alias('a')

->join('fa_my2_commodity b', 'b.id = a.commodity_id')

->where('a.type', $type)

->where('a.user_id', $user_id);

if () {
    $list = $list->field();
} else {
    $list = $list->field();
}
$list = $list->select(); 

 

 $list = Db::table('fa_shopping')


                ->alias('a')
                ->field('if(a.status_type=1,b.name,a.name) as name')


                ->join('fa_my2_commodity b', 'b.id = a.commodity_id')


                ->where('a.type', $type)


                ->where('a.user_id', $user_id)

                ->select();

 

用原生SQL查询

 Db::query("SELECT IF(a.status_type=1, b.name, a.name) AS name FROM table WHERE ...")