我有以下的口才。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