/ / Под-заявка с красноречиво, красноречие, лабравел-5.3, ларавел-красноречив

Под-заявка с красноречиво, красноречие, лабравел-5.3, ларавел-красноречив

Аз съм нов ларавел 5.3 и изправени пред под запитвания проблем с красноречие.Аз не знам как да пиша под-заявка, използвайки красноречив. Моята заявка е дадена по-долу.

select concat(m, "-", y), total
FROM (
select  month(`date`) as m , year(`date`) as y,  round(sum(amount)) as total
from `budget`
where
`user_id` = 1 and
`amount` is not null
group by m, y
) as t

Това работи добре в MySQL. така че как можем да превърнем тази заявка в красноречиво. така любезно решаване на този проблем

Отговори:

1 за отговор № 1

Трябва да създадете под-заявката първо, за да обедините обвързването в заявката за родител:

$sub = Budget::selectSub("month(`date`)", "m")
->selectSub("year(`date`)", "y")
->selectSub("round(sum(amount))", "total")
->where("user_id", 1)
->whereNotNull("amount")
->groupBy("m", "y");

$data = DB::table(DB::raw("({$sub->toSql()}) as t"))
->mergeBindings($sub->getQuery())
->selectRaw("concat(m, "-", y)")
->addSelect("total")
->get();