Получить значение из массива, сохраненного в одном столбце в Laravel

Я хотел бы получить одно значение из массива, который был сохранен в одном столбце mysql в Laravel.

Мои столбцы таблицы mysql выглядят так из Контроллера:

$registrations = RegistrationLog::groupBy('phone_number')->get();

введите описание изображения здесь

Я хотел бы попасть в раздел объекта запроса и получить значение адреса электронной почты из этого массива, который сохраняется в столбце request_object.

Пожалуйста, дайте мне знать, как я могу достичь этого в laravel, потому что я пытался использовать приведенный ниже код внутри foreach в блейде, но выдает «Попытка получить свойство ошибки не-объекта»

Код:

@foreach($registrations as $reg)
<tr>
<td>
{!! $reg->request_object->email !!}
</td>
</tr>
@endforeach

0

Решение

Ты можешь использовать мутация, отформатировать красноречивое свойство, как вы хотите для доступа. Также вы можете использовать атрибутное кастинг который будет применяться при вызове метода -> toArray () для модели Eloquent. Или просто json_decode($reg->request_object)->email

1

Другие решения

Это не похоже на «массив» в вашем столбце, это похоже на строку JSON.

Предполагая, что эти данные имеют допустимый формат JSON: в вашей модели RegistrationLog вам необходимо использовать JSON для массива поэтому столбец декодируется в массив.

class RegistrationLog extends Model
{
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'request_object' => 'array',
];
}

Тогда вы можете получить к нему доступ как $reg->request_object['email']

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector