让我们从一些简单的代码开始。我有两个以下模型。首先是使用 MySQL:
class Phrase extends \Eloquent {
public function positions()
{
return $this->hasMany('Position');
}
public function getIdAttribute($id)
{
return (int) $id;
}
}
其次是使用 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)。