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');
}
この結果には、関連オブジェクトではなく、メイン オブジェクトのみが含まれます。