简体   繁体   English

Laravel 5.2查询不起作用

[英]Laravel 5.2 query doesn't work

I try to get this query to work: 我试图使此查询工作:

DB::select(
    DB::raw('select 
        sum(case when outreach_links.status="Pending" and outreach_links.created_at >= :from and outreach_links.created_at <=:to then 1 else 0 end) as pp,
        sum(case when outreach_links.status="Approved" and outreach_links.start_date >= :from and outreach_links.start_date <=:to then 1 else 0 end) as aa,
        sum(case when outreach_links.status="Approved" then outreach_links.cost else 0 end) as cc,
        MONTH(outreach_links.created_at) month,
        MONTHNAME(outreach_links.created_at) month_name,
        YEAR(outreach_links.created_at) year from outreach
        inner join outreach_links on outreach.id = outreach_links.outreach_id
        where outreach.profile_id=:proid
        group by month, year',
    ["from" => $from, "to" => $to, "proid" => $pro_id])
)->get();

But I am getting the error: 但是我得到了错误:

Call to a member function get() on a non-object

I changed to this and it worked: 我改变了这一点,它的工作:

DB::select(
    DB::raw('select 
        sum(case when outreach_links.status="Pending" and outreach_links.created_at >= ? and outreach_links.created_at <=? then 1 else 0 end) as pp,
        sum(case when outreach_links.status="Approved" and outreach_links.start_date >= ? and outreach_links.start_date <=? then 1 else 0 end) as aa,
        sum(case when outreach_links.status="Approved" then outreach_links.cost else 0 end) as cc,
        MONTH(outreach_links.created_at) month,
        MONTHNAME(outreach_links.created_at) month_name,
        YEAR(outreach_links.created_at) year from outreach
        inner join outreach_links on outreach.id = outreach_links.outreach_id
        where outreach.profile_id=?
        group by month, year'),
    [$from, $to, $from, $to, $pro_id]
);

DB::raw() doesn't parse the query. DB :: raw()不解析查询。 Try moving your conditions outside the raw call: 尝试将条件移至raw调用之外:

DB::select(
    DB::raw('select 
        sum(case when outreach_links.status="Pending" and outreach_links.created_at >= :from and outreach_links.created_at <=:to then 1 else 0 end) as pp,
        sum(case when outreach_links.status="Approved" and outreach_links.start_date >= :from and outreach_links.start_date <=:to then 1 else 0 end) as aa,
        sum(case when outreach_links.status="Approved" then outreach_links.cost else 0 end) as cc,
        MONTH(outreach_links.created_at) month,
        MONTHNAME(outreach_links.created_at) month_name,
        YEAR(outreach_links.created_at) year from outreach
        inner join outreach_links on outreach.id = outreach_links.outreach_id
        where outreach.profile_id=:proid
        group by month, year'),
    ["from" => $from, "to" => $to, "proid" => $pro_id]
)->get();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM