我創建使用條件/約束模型博弈的關係如下:如何訪問模型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