应用toArray()时,无法访问laravel中的对象并具有“0”索引

时间:2014-08-20 00:06:52

标签: arrays object laravel eloquent

我有这些表格

clientes

  

ID
  nombre_rz
  ced_rif
  telefono
  id_usuario

solicitantes

  

ID
  农布雷
  电子邮件
  telefono
  id_cliente

cliente->hasMany('solicitante')<br>
solicitante->belongsTo('cliente')<br>

^这在模型中写得很好,只是试图不做一面文字。

认证后,当我做

$cliente = Cliente::where('usuario_id','=',Auth::id())->with('solicitante')->get();
                    dd($cliente);

$cliente = Cliente::where('usuario_id','=',Auth::id())->with(array('solicitante' => function($query)
            {
                $query->where('cliente_id', '=', '35');

            }))->get();
            dd($cliente);

我得到了这个意见 Object from query

使用toArray()我得到了这个

Array from object

如果该数组的访问索引0如

$array = $cliente->toArray(); dd($array['0']);

我得到了

[数组索引0] [3]

据我所知,查询是正确的,我需要的数据就在那里,但我不知道为什么我无法访问该对象

$cliente->id; $cliente->telefono, $cliente->solicitante->nombre, $cliente->solicitante->email

总是抛出

  

未定义属性:Illuminate \ Database \ Eloquent \ Collection :: $ telefono

无法理解这种行为。

1 个答案:

答案 0 :(得分:0)

您正在返回一个对象数组,因为您向Laravel询问了一个组。你可以做到

foreach ($cliente as $client)
{
     echo $client->telefono;
     foreach ($client->solicitante as $solicitante)
     {
         $solicitante->nombre;
     }
}

或者您可以指定只需要一个结果

$cliente = Cliente::where('usuario_id','=',Auth::id())->with('solicitante')->first();
echo $cliente->telefono;
foreach ($client->solicitante as $solicitante)
{
    $solicitante->nombre;
}