Я пытаюсь найти лучший способ решить проблему вставки условного фрагмента SQL в функцию приложения laravel 5.8.
Я успешно вызываю функцию с параметром запроса $type
.
$type
входящий в эту функцию может быть 1,2 или 3 (когда 3 я в основном хочу, чтобы запрос sql выполнялся ни с чем в этом месте), но в настоящее время он успешно возвращает результаты запроса снизу, как будто ничего не происходит. вводится вообще. Я могу вывести $ typeCondition на основе выбора, и он переключается правильно, поэтому я знаю, что typeCondition устанавливается правильно, но похоже, что он на самом деле не подключает typeCondition к запросу, и я получаю одни и те же результаты каждый раз, так чтоможет быть, это проблема синтаксиса?
Если я запускаю приведенную ниже версию как просто :typeCondition
, она выдает ошибку и говорит, что это недопустимый вызов param.
Что мне делать здесь?
public static function gatherReporting($type) {
if($type ==1){
$typeCondition = 'AND T1 . parent_id IS NOT NULL';
}elseif($type ==2){
$typeCondition = 'AND T1 . parent_id IS NULL';
}else{
$typeCondition = '';
}
$sql = "
SELECT *
FROM SCHEMA . TABLE T1
WHERE ACTIVE = 1
{:typeCondition}
INNER JOIN SCHEMA . TABLE2 T2
ON T1.ID = T2.ID
";
return DB::connection('odbc')->select($sql, [
'typeCondition' => $typeCondition
]);
}