Laravel/Jenssegers MongoDB を使用して、アプリの簡単なお気に入りを設定しようとしています
私は2つのモデルを持っています:
class Item {
public function favorites()
{
return $this->hasMany('App\Models\User', 'favorites');
}
}
class User {
public function favorites()
{
return $this->hasMany('App\Models\Item', 'favorites');
}
}
したがって、アイテムには多くのユーザーがいて、ユーザーは多くのアイテムまたは「お気に入り」を持つことができます。
次のような単純なクエリを実行しようとすると:
Item::with('favorites')->get();
お気に入りの関係はありますが、空の配列です。
favorites
テーブルは単純で、3 つの列しかありません。
_id, item_id, user_id
私もembedsMany
運が悪かったので使ってみました:
return $this->embedsMany('App\Models\User', 'favorites');
また、パラメーターのすべての組み合わせを試しました。
return $this->embedsMany('App\Models\User', 'favorites', 'building_id', 'user_id');
return $this->embedsMany('App\Models\User', 'favorites', 'user_id', 'building_id');
return $this->hasMany('App\Models\User', 'favorites', 'building_id', 'user_id');
return $this->hasMany('App\Models\User', 'favorites', 'user_id', 'building_id');
使用時の奇妙な結果:
return $this->hasMany('App\Models\User', 'favorites', 'building_id', 'user_id');
この状況でのみ、お気に入りのレコードが 1 つしかない場合でも、すべてのユーザーが返されます。
また、使用してデバッグしようとするとgetQueryLog
、常に空の配列が返されます。
print_r(\DB::connection('mongodb')->getQueryLog());
私はこれを使用mysql
してこれを行いましたが、問題が発生したことはありません。そのため、問題がどこから来ているのかよくわかりません。