我有这些表格
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()我得到了这个
如果该数组的访问索引0如
$array = $cliente->toArray(); dd($array['0']);
我得到了
[数组索引0] [3]
据我所知,查询是正确的,我需要的数据就在那里,但我不知道为什么我无法访问该对象
$cliente->id; $cliente->telefono, $cliente->solicitante->nombre, $cliente->solicitante->email
总是抛出
未定义属性:Illuminate \ Database \ Eloquent \ Collection :: $ telefono
无法理解这种行为。
答案 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;
}