Как решить синтаксическую ошибку или нарушение прав доступа для проекта PHP Laravel? - PullRequest
0 голосов
/ 10 января 2020

У меня есть две таблицы: таблица заявок и таблица заявок. В настоящее время я хочу получить имя претензии в таблице request_type. Итак, из таблицы Claim мы получим, какой тип заявки (в форме id), а после этого мы можем получить имя типа. Я уже запросил его внутри MySQL верстак, как это.

SELECT claim_types.name, count(*), sum(amount) FROM myteduh_v1.claims 
join claim_types on claim_type_id = claim_types.id
group by claim_type_id;

Когда я отправляю сообщение на PHP, запросить который, как показано ниже. Оказывается какая-то ошибка.

$ClaimsType = ClaimType::pluck('name')
                ->count()
                ->join('claim_types','claim_type_id','=', 'claim_types.id')
                ->groupBy('claim_type_id')
                ->get();

dd($ClaimsType);

$Claims_pie_chart = Charts::create('pie', 'highcharts')
         ->title('Total Claims Based On Type of Claims')
         ->labels(['$ClaimsType'])
         ->values([15,25,50])
         ->dimensions(1000,500)
         ->responsive(true);

После этого я хочу вставить $ClaimsType в переменную меток, которая будет p ie меток диаграммы. Вопрос в том, неправильно ли я обращаюсь к базе данных внутри контроллера PHP?

1 Ответ

0 голосов
/ 10 января 2020

Если вы хотите использовать агрегацию в одном запросе, вы должны использовать DB:raw() для выбора

$ClaimsType = Claim::select(['claim_types.name', DB:raw('count(*)'), DB:raw('sum(amount)')])
                ->join('claim_types','claim_type_id','=', 'claim_types.id')
                ->groupBy('claim_type_id')
                ->get();

, теперь вы можете использовать ->toSql() вместо ->get(), и вы увидите, что запрос такой же, как ваш необработанный запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...