1

我们可以使用 th 在 php 中创建空对象,stdClass我们可以像这样向它添加属性:

$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 从两个不相关的表中获取数据?

到目前为止我的想法是将模型转换为数组然后加入它们,但是我如何将加入的数组转换为模型以便它在视图中?

编辑 2

我发现可以合并 eloquent 集合,但是如果表具有相同类型的 PK 并且存在具有相同 PK 的重复记录,它们将被覆盖,所以我决定将集合转换为数组合并它们并访问它们像他们这样:

{{ $item['key'] }}

如果有人有更好的方法来做到这一点,我会欣赏它。

4

1 回答 1

-1

我认为更好的方法是做一个 for 循环,而不是让它更有活力。

代码:

class Data {
    private $property, $property2;

    public function  __construct($property,$property2) {
        $this->Property = $property;
        $this->Property2 = $property2;
    }
}

$dataArray = array();

$dataArray[] = new Data('Name',Image);
$dataArray[] = new Data('Name',Image);

print "<pre>";
print_r($dataArray);
print "</pre>";

for ($i=0; $i < count($dataArray); $i++) { 
    // do something with the array of objects
}
于 2015-08-09T21:22:22.313 回答