Объединить две красноречивые коллекции в одно свойство объекта?

Мы можем создавать пустые объекты в php используя th 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

Я обнаружил, что можно объединять красноречивые коллекции, но если таблицы имеют один и тот же тип PK и есть повторяющиеся записи с одним и тем же PK, они будут переопределены, поэтому я решил преобразовать коллекции в массивы, объединить их и получить к ним доступ как они, как это:

{{ $item['key'] }}

Если у кого-то есть лучший способ сделать это, я буду признателен за это.

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
}
-1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]