Я хотел бы получить одно значение из массива, который был сохранен в одном столбце 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
Ты можешь использовать мутация, отформатировать красноречивое свойство, как вы хотите для доступа. Также вы можете использовать атрибутное кастинг который будет применяться при вызове метода -> toArray () для модели Eloquent. Или просто json_decode($reg->request_object)->email
Это не похоже на «массив» в вашем столбце, это похоже на строку 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']