繁体   English   中英

Laravel错误语法错误或DB :: raw中的访问冲突

[英]Laravel Error Syntax error or access violation in DB::raw

我想用与propinsisID和agamaID相同的pegawai计数获取agama,这是我的控制器,但是我收到此错误错误语法错误或访问冲突,请帮助我。

public function getPropinsi($id)
{
    $this->data['query'] =  DB::table("propinses")->where("id",$id)->first();
    $this->data['title'] = $this->data['query']->Propinsi;
    $this->data['count_satker'] = DB::table('satkerfakes')->where('PropinsiID',$id)->count(); 
    $this->data['pegawai'] = Pegawais::where('PropinsiID',$id);
    $this->data['agama'] = DB::table("agamas")
                                    ->select("agamas.Agama",DB::raw("(select count(*) 
                                        from pegawais 
                                        where pegawais.PropinsiID = $id
                                        where pegawais.AgamaID = agamas.AgamaID) as total_pegawai"))->get();
    return view('index.propinsi',$this->data);
}

您在这里至少有2个错误:

$this->data['pegawai'] = Pegawais::where('PropinsiID',$id);

您想在这里实现什么? 如果要获取具有此ID的记录,则应使用:

$this->data['pegawai'] = Pegawais::where('PropinsiID',$id)->get();

要么

$this->data['pegawai'] = Pegawais::where('PropinsiID',$id)->first();

取决于您是否要获得1条或更多条记录。

在查询中使用:

select count(*)  from pegawais 
    where pegawais.PropinsiID = $id
    where pegawais.AgamaID = agamas.AgamaID) as total_pegawai

您不能两次where使用AND应该使用AND运算符:

select count(*)  from pegawais 
    where pegawais.PropinsiID = $id
    AND pegawais.AgamaID = agamas.AgamaID) as total_pegawai

暂无
暂无

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

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