我想获得与propinsID和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个errros:
$this->data['pegawai'] = Pegawais::where('PropinsiID',$id);
你想在这里实现什么?如果你想获得这个id的记录,你应该使用:
$this->data['pegawai'] = Pegawais::where('PropinsiID',$id)->get();
或
$this->data['pegawai'] = Pegawais::where('PropinsiID',$id)->first();
这取决于您是否想要获得一张或多张唱片。
在您的查询中,您使用:
select count(*) from pegawais
where pegawais.PropinsiID = $id
where pegawais.AgamaID = agamas.AgamaID) as total_pegawai
不能使用where
两次,应使用AND
运算符:
select count(*) from pegawais
where pegawais.PropinsiID = $id
AND pegawais.AgamaID = agamas.AgamaID) as total_pegawai