Это мой второй вопрос, основанный после решения Строки столбцам на основе даты / времени в Postgresql Таблица находится в верхней ссылке :)
Вот моя модель :
namespace App;
use Illuminate\Database\Eloquent\Model;
class StambMeasCanal extends Model
{
protected $connection = 'stamb';
protected $table = 'meas_kanal';
protected $fillable = ['fullname','formattedvalue','recordtime','qualitydesc','statedesc','id'];
}
Часть моего контроллера:
function getdata(Request $request)
{
$start_date = date('d-m-Y 00:00:00');
$end_date = date('d-m-Y 23:59:59');
if($request->start_date != '' && $request->end_date != '')
{
// if user fill dates
$dateScope = array($request->start_date ." 00:00:00", $request->end_date ." 23:59:59");
} else {
// default load page - today
$dateScope = array($start_date, $end_date);
};
$students = StambMeasCanal::whereBetween('recordtime', $dateScope)
->selectRaw('recordtime')
->selectRaw('max(formattedvalue) filter (where fullname = "Данни.Кота") as kotaiazovir')
->selectRaw('max(formattedvalue) filter (where fullname = "Данни.Напрежение") as naprevenieqzovir')
->selectRaw('max(formattedvalue) filter (where fullname = "Данни.Температура") as tempqzovir')
->selectRaw('max(formattedvalue) filter (where fullname = "Данни.Температура_табло") as temptabloqzovir')
->selectRaw('max(formattedvalue) filter (where fullname = "Данни.Ниво") as nivoqzovir')
->selectRaw('max(formattedvalue) filter (where fullname = "ГСК_00_600.Данни.Напрежение") as naprevenie600')
->selectRaw('max(formattedvalue) filter (where fullname = "ГСК_00_600.Данни.Ниво") as nivo600')
->selectRaw('max(formattedvalue) filter (where fullname = "ГСК_00_600.Данни.НивоУЗ") as nivouz600')
->selectRaw('max(formattedvalue) filter (where fullname = "ГСК_00_600.Данни.Разход") as razhod600')
->selectRaw('max(formattedvalue) filter (where fullname = "ГСК_00_600.Данни.Температура") as temperatura600')
->selectRaw('max(formattedvalue) filter (where fullname = "ГСК_09_200.Данни.Напрежение") as naprevenie200')
->selectRaw('max(formattedvalue) filter (where fullname = "ГСК_09_200.Данни.Ниво") as nivo200')
->selectRaw('max(formattedvalue) filter (where fullname = "ГСК_09_200.Данни.НивоУЗ") as nivouz200')
->selectRaw('max(formattedvalue) filter (where fullname = "ГСК_09_200.Данни.Разход") as razhod200')
->selectRaw('max(formattedvalue) filter (where fullname = "ГСК_09_200.Данни.Температура") as temperatura200')
->selectRaw('max(qualitydesc) as QualityDesc')
->selectRaw('max(qualitydesc) as StateDesc')
->groupBy('recordtime')
->orderBy('recordtime', 'ASC')
->get();
return Datatables::of($meascanal)
->make(true);
}
После запроса у меня появляется ошибка:
message: "SQLSTATE[42703]: Undefined column: 7 ERROR: column "Данни.Кота" does not exist↵LINE 1: ...ime, max(formattedvalue)..
Это плохая интеграция, которую я сделал в запрос laravel?
EDIT1: проблема заключалась в кавычках. Мне нужно было экранировать их:
where fullname = \'Данни.Кота\'
EDIT2:
Последние два столбца (QualityDes c и StateDes c) не привязаны ни к одному из столбцов FormattedValue и отображаются неправильно заказать ... Есть идеи как это исправить?