Я использую laravel eloquent для извлечения данных из нескольких столбцов. Я использую массив для извлечения данных из нескольких столбцов. Для простоты я показываю данные из двух столбцов.
Вот моя таблица базы данных с callee_number
и caller_number
:
введите описание изображения здесь
Вот мой код, в котором я использую массив для выборки столбцов:
$paramArray = $params->all();
$Caller_number = "";
$Callee_number = "";
if (isset($paramArray['Caller_number']) && $paramArray['Caller_number'] != '') {
$Caller_number = $params->input('Caller_number');
}
if (isset($paramArray['Callee_number']) && $paramArray['Callee_number'] != '') {
$Callee_number = $params->input('Callee_number');
}
if($Caller_number!=null){
$querypart[] = "caller_number=$Caller_number";
}
if($Callee_number!=null){
$querypart[] = "callee_number=$Callee_number";
}
$FinalQueryPart = '';
if (!empty($querypart)) {
$Seprator = "";
foreach ($querypart as $querypartValue) {
$FinalQueryPart .= $Seprator . $querypartValue;
$Seprator = " AND ";
}
}
$FinalQueryPart = trim($FinalQueryPart); //Output: "caller_number=783 AND callee_number=77"
Однако я получаю сообщение об ошибке после запуска следующего кода после кода выше:
$gets = Tbcdrnew::where(function ($query) use ($FinalQueryPart) {
$query->MIN('uniqueid')->where($FinalQueryPart)
->from('cdrnew');
})->groupBy('uniqueid')->orderBy('Start_Date','DESC')->get();
Ошибка выглядит следующим образом:
Illuminate\Database\QueryException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'caller_number=783 AND callee_number=77' in 'where clause' (SQL: select * from `cdrnew` where (`caller_number=783 AND callee_number=77` is null) group by `uniqueid`
Не понимаю, что не так в моем коде. Кто-нибудь может меня поправить?