MyObject {#300 ▼
+dataType: DataType {#323 ▶}
+data: Course {#328 ▼
#connection: "mysql"
#table: null
#primaryKey: "id"
#keyType: "int"
+incrementing: true
#with: []
#withCount: []
#perPage: 15
+exists: true
+wasRecentlyCreated: false
#attributes: array:32 [▶]
#original: array:32 [▶]
#changes: array:2 [▼
"prop" => 1
"updated_at" => "2018-08-08 11:50:39"
]
#casts: []
#dates: []
#dateFormat: null
#appends: []
#dispatchesEvents: []
#observables: []
#relations: []
#touches: []
+timestamps: true
#hidden: []
#visible: []
#fillable: []
#guarded: array:1 [▶]
}
}
我使用以下命令在屏幕上打印该对象
dd($args->data);
现在我需要检查更改中是否包含某些内容 然后我尝试通过以下方式访问该属性:
dd($args->data->changes);
或
dd($args->data['changes']);
但我总是得到一个NULL,而不是上面看到的数组。 如何访问“更改”?
答案 0 :(得分:1)
尝试一下:
RGB: (0, 234, 234)
答案 1 :(得分:1)
首先,检查对象是否存在。如果存在,则尝试访问其key
。因此,代码如下:
$changes = $args->data ? $args->data->changes : [];
if(count($changes)>0){
// iterate through the `$changes` to make changes
}
答案 2 :(得分:1)
您的数据似乎是一种雄辩的模型。 changes
属性是模型类的受保护的成员。因此,您不能从外部访问它。
在dd
函数的输出中,公共成员以+
字符为前缀,受保护成员以#
字符为前缀。您可以看到这些前缀,以了解要访问的属性的可见性。
要获取Eloquent模型的更改,请使用getChanges()
方法。对于您的情况,您应编写如下代码:
dd($args->data->getChanges());
答案 3 :(得分:0)
尝试使用foreach循环
foreach($args as $arguslist){
$mainarray = $argulist->changes;
$arrayattr = $argulist->changes->prop;
}