我有以下的口才。Laravel很多層的雄辯關係
卷, 問題, 類別, 條, ArticleTranslation,
卷可以有很多的問題。 問題可以有很多類別。 類別可以有很多文章。 文章可以有很多翻譯。
那麼如何從文章/ ArticleTranslation中獲取卷?
我有以下的口才。Laravel很多層的雄辯關係
卷, 問題, 類別, 條, ArticleTranslation,
卷可以有很多的問題。 問題可以有很多類別。 類別可以有很多文章。 文章可以有很多翻譯。
那麼如何從文章/ ArticleTranslation中獲取卷?
首先你的模型。
..
class Volume extends Model {
public function issues() {
return $this->hasMany(Issue::class);
}
}
class Issue extends Model {
public function volume() {
return $this->belongsTo(Volume::class);
}
public function categories() {
return $this->hasMany(Category::class);
}
}
class Category extends Model {
public function issue() {
return $this->belongsTo(Issue::class);
}
public function articles() {
return $this->hasMany(Article::class);
}
public function articlesTranslated() {
return $this->hasMany(ArticleTranslated::class);
}
}
class Article extends Model {
public function category() {
return $this->belongsTo(Category::class);
}
}
..
然後在你的代碼:在數據庫
..
$articles = Articles::all();
$volumes = [];
foreach ($articles as $article) {
$volumes[] = $article->category->issue->volume;
}
..
4水平會導致性能下降和大量不必要的開銷。考慮**反規範化**你的表。 – Mysteryos
@Mysteryos感謝您的建議,我去反規範化的表。 – Indra