Вы используете построитель запросов, и вы использовали ->get()
в первом условии, это вернет результат сбора. У него нет whereRaw
метода.
Вам нужно использовать select()
вместо get()
if($a != "") {
$queryData = DB::table('students')
->whereRaw("code = :code AND class != :class AND gender = :gender", ["code" => 1, "class" => "General", "gender" => "m"])
->select(['code as c', 'class as c','students.*']);
}
if($b != '') {
$queryData = $queryData->whereRaw(" ST_Distancesphere(geom,ST_SetSRID(ST_MakePoint(:longt, :latt), 4326)) < :b", ["longt" => $longt, "latt" => $latt, "b" => $b]);
}
return $queryData->get();