在Laravel文檔,它說,你可以使用這個語法查詢對象的關係纔拿到的是有帖子至少一個註釋:Laravel查詢關係模式::擁有(「關係」)不工作
$posts = Post::has('comments')->get();
我想要類似的地方,我只想獲取至少有一個關係對象的對象。這些是我的兩個類:
class Movie extends Eloquent {
protected $table = 'movie';
public function matches() {
return $this->hasMany("Match");
}
}
class Match extends Eloquent {
protected $table = 'match';
public function movie() {
return $this->belongsTo("Movie");
}
}
但是,當我打電話
$movies = Movie::has('matches')->get();
我得到一個空的集合。如果我叫
$movie = Movie::find(1)->matches()->get();
我做得到,涉及到電影中的比賽,所以我知道的關係是正確安裝。雖然我無法弄清楚我在做什麼錯了Movie :: has方法。
我正在使用由composer創建的laravel項目中包含的sqlite3數據庫。這是結構和數據:
sqlite> .schema movie
CREATE TABLE "movie" ("id" integer not null primary key autoincrement, "title" varchar not null);
sqlite> .schema match
CREATE TABLE "match" ("id" integer not null primary key autoincrement, "movie_id" integer not null, "title" varchar not null, foreign key("movie_id") references "movie"("id"));
CREATE INDEX match_movie_id_index on "match" ("movie_id");
sqlite> select * from movie;
1|Test Movie
sqlite> select * from match;
1|1|Test Movie Match
另外,我看不到'has'方法來自哪裏。 Model類沒有'has'方法。 – Mat
該方法在API文檔中描述:[here](http://laravel.com/api/master/Illuminate/Database/Eloquent/Builder.html#method_has) –
您是否知道問題所在?似乎有同樣的問題。 – Markus