1

th を使用して php で空のオブジェクトを作成し、次stdClassのようにプロパティを追加できます。

$data = new stdClass;

$data->xyz = something;

しかし、どうすればさらに多くのものをプロパティに追加できるでしょうか? 私はこのようなことを意味します:

$data->xyz += somethingElse;

それは可能ですか?

私がやりたいことは次のとおりです。データベースからデータを取得する必要があり、2 つのテーブルのレコードを 1 つのプロパティに格納したいと考えています。テーブルからデータを取得してプロパティに保存するには、次のようにします。

    $data = new stdClass;

    $data->gallery = \DB::table('RestaurantMenuOptions')
        ->select('Name', 'Image')
        ->get();

    $data->gallery2 = \DB::table('Promotions')
        ->select('Name', 'Image')
        ->get();

私が望むのは、それらすべてを単一のgalleryプロパティに格納することです。ちなみにLaravel5を使っています。

編集 1

私が欲しいのは、テーブルから呼び出されたデータを の 1 つのプロパティに結合する'RestaurantMenuOptions'こと'Promotions'です$data。Eloquent を使用して、2 つの変数を結合できるかどうか、または関連のない 2 つのテーブルからデータを取得できるかどうかを推測していますか?

これまでに考えたことは、モデルを配列に変換してから結合することですが、結合された配列をモデルに変換してビューに表示するにはどうすればよいですか?

編集 2

雄弁なコレクションをマージすることは可能であることがわかりましたが、テーブルに同じタイプの 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 に答える