【发布时间】:2015-11-01 17:47:18
【问题描述】:
我们可以使用 stdClass 在 php 中创建空对象,我们可以像这样向它添加属性:
$data = new stdClass;
$data->xyz = something;
但是我们怎样才能给一个属性添加更多的东西呢?我的意思是这样的:
$data->xyz += somethingElse;
这可能吗?
我想做的是:我必须从数据库中获取一些数据,并且我想将两个表的记录存储在一个属性中。要从表中获取数据并将其存储在属性中,我这样做:
$data = new stdClass;
$data->gallery = \DB::table('RestaurantMenuOptions')
->select('Name', 'Image')
->get();
$data->gallery2 = \DB::table('Promotions')
->select('Name', 'Image')
->get();
我想要将它们全部存储在一个 gallery 属性中。顺便说一句,我使用 Laravel 5。
编辑 1
我想要的是将 'RestaurantMenuOptions' 和 'Promotions' 表调用的数据合并到 $data 的一个属性中。我猜是否可以连接两个变量,或者是否可以使用 Eloquent 从两个不相关的表中获取数据?
到目前为止我的想法是 convert the models to array 然后加入它们,但是我如何将加入的数组转换为模型以便它在视图中?
编辑 2
我发现可以合并 eloquent 集合,但是如果表具有相同类型的 PK 并且存在具有相同 PK 的重复记录,它们将被覆盖,所以我决定将集合转换为数组合并它们并像这样访问他们:
{{ $item['key'] }}
如果有人有更好的方法,我会很感激。
【问题讨论】:
标签: php laravel-5 stdclass object-properties