从 Laravel 中保存在单列中的数组中获取值
Fetch value from array saved in a single column in Laravel
我想从数组中获取单个值,该数组已保存在 Laravel 的单个 mysql 列中。
我的 mysql table 列在控制器中看起来像这样:
$registrations = RegistrationLog::groupBy('phone_number')->get();
我想进入请求 object 部分并从保存在 request_object 列中的那个数组中获取电子邮件地址值。
请告诉我如何在 laravel 中实现此目的,因为我已尝试在 blade 中的 foreach 中使用以下代码,但抛出 'Trying to get property of non-object error'
代码:
@foreach($registrations as $reg)
<tr>
<td>
{!! $reg->request_object->email !!}
</td>
</tr>
@endforeach
这在您的专栏中看起来不像 "array",这看起来像 JSON 字符串。
假设此数据采用有效的 JSON 格式:在您的 RegistrationLog 模型中,您需要使用 JSON to Array casting 以便将列解码为数组。
class RegistrationLog extends Model
{
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'request_object' => 'array',
];
}
然后您可以访问它 $reg->request_object['email']
您可以使用 mutation, to format eloquent property like you want befor access. Also you can use attribute casting,它将在您调用 ->toArray() 方法到 Eloquent 模型时应用。或者只是 json_decode($reg->request_object)->email
我想从数组中获取单个值,该数组已保存在 Laravel 的单个 mysql 列中。
我的 mysql table 列在控制器中看起来像这样:
$registrations = RegistrationLog::groupBy('phone_number')->get();
我想进入请求 object 部分并从保存在 request_object 列中的那个数组中获取电子邮件地址值。
请告诉我如何在 laravel 中实现此目的,因为我已尝试在 blade 中的 foreach 中使用以下代码,但抛出 'Trying to get property of non-object error'
代码:
@foreach($registrations as $reg)
<tr>
<td>
{!! $reg->request_object->email !!}
</td>
</tr>
@endforeach
这在您的专栏中看起来不像 "array",这看起来像 JSON 字符串。
假设此数据采用有效的 JSON 格式:在您的 RegistrationLog 模型中,您需要使用 JSON to Array casting 以便将列解码为数组。
class RegistrationLog extends Model
{
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'request_object' => 'array',
];
}
然后您可以访问它 $reg->request_object['email']
您可以使用 mutation, to format eloquent property like you want befor access. Also you can use attribute casting,它将在您调用 ->toArray() 方法到 Eloquent 模型时应用。或者只是 json_decode($reg->request_object)->email