У меня есть эти таблицы
Клиенты
id
nombre_rz
ced_rif
телефон
id_usuario
Солиситанты
id
номер
электронная почта
телефон
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);
Я получил этот объект Объект из запроса
И используя 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
Не могу понять этого поведения.
1 ответ
Вы возвращаете массив объектов, потому что запросили у 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;
}
Похожие вопросы
Новые вопросы
arrays
Массив - это упорядоченная линейная структура данных, состоящая из набора элементов (значений, переменных или ссылок), каждый из которых идентифицируется одним или несколькими индексами. Когда вы спрашиваете о конкретных вариантах массивов, используйте вместо них следующие связанные теги: [vector], [arraylist], [matrix]. При использовании этого тега в вопросе, относящемся к языку программирования, пометьте вопрос используемым языком программирования.