Мы можем создавать пустые объекты в 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'] }}
Если у кого-то есть лучший способ сделать это, я буду признателен за это.
Я думаю, что лучшим способом было бы сделать цикл 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
}
Других решений пока нет …