我在从select中检索数据时遇到问题。
当我执行以下选择时
$Projeto = $this->ModelProjeto
->select('projeto.*','tipoprojeto.descricao')
->join('tipoprojeto','tipoprojeto.id','=','projeto.tipoprojeto')->get();
并返回json
[{"id":1,"descricao":"house","tipoprojeto":1,"tipoprojetodescricao":"Engenharia Civil"}]
当我尝试使用以下命令检索json id时:出现return $Projeto->id;
错误
此集合实例上不存在Property [id]。
如果我使用find方法,它会正常工作,但是不可能使用join,所以我如何访问Project-> id使用 - > get()方法?
答案 0 :(得分:2)
查看JSON,这是一个数组,所以不使用get()
,而是使用first()
$Projeto = $this->ModelProjeto
->select('projeto.*','tipoprojeto.descricao')
->join('tipoprojeto','tipoprojeto.id','=','projeto.tipoprojeto')->first();
这将确保只返回1条记录,并且它将返回一个对象而不是一个集合
答案 1 :(得分:2)
get()
方法返回一个集合,而不是单个项目。
$Projetos = $this->ModelProjeto
->select('projeto.*','tipoprojeto.descricao')
->join('tipoprojeto','tipoprojeto.id','=','projeto.tipoprojeto')
->get();
// you would need to loop the $Projetos to get each id
$Projetos->each->id
// or use the first() method if you know only one item is returned
$Projeto = $this->ModelProjeto
->select('projeto.*','tipoprojeto.descricao')
->join('tipoprojeto','tipoprojeto.id','=','projeto.tipoprojeto')
->first();