从保存在Laravel中单列中的数组中获取值

时间:2018-08-01 14:23:29

标签: php arrays laravel arrayobject

我想从一个数组中获取一个值,该值已保存在Laravel的单个mysql列中。

我的mysql表列在Controller中看起来像这样:

virtualhost localhost:8083

enter image description here

我想进入请求对象部分,并从保存在request_object列中的那个数组中获取电子邮件地址值。

请让我知道如何在laravel中实现此目标,因为我尝试在刀片中的foreach中使用以下代码,但会抛出“试图获取非对象错误的属性”

代码:

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

2 个答案:

答案 0 :(得分:1)

您可以使用mutation来格式化雄辩的属性,就像您想要访问一样。您也可以使用attribute casting,当您对Eloquent模型调用-> toArray()方法时,将应用enter image description here。或者只是json_decode($reg->request_object)->email

答案 1 :(得分:0)

这看起来不像您列中的“数组”,而是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']的身份访问