3

MongoDB で Laravel 5 アプリケーションを作成しました。MongoDB の場合、jenssegers/laravel-mongodb を使用しています。

次のような MongoDB オブジェクトがあります。

{
    "_id" : ObjectId("556c47677347b041b6004bfd"),
    "name" : "Lucht?",
    "type" : "onderzoeksvragen",
    "levels" : [ 
        "5", 
        "6"
    ],
    "data" : {
        "name" : "Lucht?",
        "description" : "<p>\n\tWat is lucht?</p>\n<p>\n\tHoe sterk is lucht?</p>\n<p>\n\tWat kun je met lucht?</p>\n",
        "coach_information" : null
    },
    "updated_at" : ISODate("2015-06-01T11:52:23.399Z"),
    "created_at" : ISODate("2015-06-01T11:52:07.536Z"),
    "related_ids" : [ 
        "556c47627347b041b6004263"
    ]
}

このフィールドrelated_idsには、このオブジェクトに関連する ObjectId の配列が含まれています。関連オブジェクトでこのオブジェクトを取得したい。関連オブジェクトは、メイン オブジェクトと同じタイプです。したがって、それらは同じコレクションにあります。

Github ( https://github.com/jenssegers/laravel-mongodb ) のドキュメントを読み、これを見つけました:

belongsToMany リレーションはピボット「テーブル」を使用しませんが、related_ids代わりに ID を属性にプッシュします。

use Jenssegers\Mongodb\Model as Eloquent;

class User extends Eloquent {

    public function groups()
    {
        return $this->belongsToMany('Group', null, 'users', 'groups');
    }

}

しかし、それは私にはうまくいきません。私のコード:

コントローラ ExploreController.php

$explore = Explore::with('related')->find('556c47677347b041b6004bfd');

モデルExplore.php

public function related()
{
    $this->belongsToMany('App\Explore', null, 'explore' 'explore');
}

この結果には、関連オブジェクトではなく、メイン オブジェクトのみが含まれます。

4

0 に答える 0