Laravel恢复了json返回的id

时间:2018-02-11 20:54:37

标签: php json laravel

我在从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()方法?

2 个答案:

答案 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();