我创建使用条件/约束模型博弈的关系如下:如何访问模型hasMany与哪里的条件关系?
class Game extends Eloquent {
// many more stuff here
// relation without any constraints ...works fine
public function videos() {
return $this->hasMany('Video');
}
// results in a "problem", se examples below
public function available_videos() {
return $this->hasMany('Video')->where('available','=', 1);
}
}
当以某种方式使用它是这样的:
$game = Game::with('available_videos')->find(1);
$game->available_videos->count();
一切工作正常,因为角色是结果采集。
我的问题:
当我尝试不预先加载,因为它说“调用一个成员函数count()在非访问它
$game = Game::find(1);
$game->available_videos->count();
引发异常对象“。
使用
$game = Game::find(1);
$game->load('available_videos');
$game->available_videos->count();
工作正常,但似乎相当复杂的我,因为我并不需要加载相关的模型,如果我没有我的关系中使用的条件。
我错过了什么吗?我怎样才能确保,available_videos可以在不使用急切加载的情况下访问?
任何有兴趣,我也张贴了这个问题上http://forums.laravel.io/viewtopic.php?id=10470
在laravel中实现基于角色的用户管理的最佳方式是使用sentry包。所以试试吧。 – harishannam
正如我在上面的描述中所说的,模型名称只是一个例子,我的问题与用户管理无关。我将编辑我的问题并发布我的真实例子。 – Remluben