Аз съм нов ларавел 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();