単純なコードから始めましょう。私は次の2つのモデルを持っています。まず、MySQL を使用します。
class Phrase extends \Eloquent {
public function positions()
{
return $this->hasMany('Position');
}
public function getIdAttribute($id)
{
return (int) $id;
}
}
2番目はMongoDBを使用しています:
use Jenssegers\Mongodb\Model as Eloquent;
class Position extends Eloquent {
protected $collection = 'positions';
protected $connection = 'mongodb';
public function phrase()
{
return $this->belongsTo('Phrase');
}
}
私のコントローラーでは、フレーズの位置を取得したい:
Phrase::find(1)->positions
クエリを生成している
positions.find({"positions.phrase_id":1}, [])
それ以外の
positions.find({"phrase_id":1}, [])
どうすれば修正できますか?問題は HasMany メソッド内にあります ( http://laravel.com/api/source-class-Illuminate.Database.Eloquent.Model.html#_hasMany )。