【发布时间】:2014-06-26 01:54:52
【问题描述】:
我有一个自引用表,上面有新闻及其各自的翻译作为孩子。我要做的是查询每个父新闻的翻译语言,以显示在我的索引新闻页面中。 在索引新闻页面中,我有一个表格,其中显示了我所有的父新闻:
- 标题
- 家长新闻语言
- 儿童新闻语言(翻译)(这是我的问题!)
- 编辑
- 删除
有了这个,我想自动查看新闻所用的原始语言,并检查它是否已经被翻译。
我的代码是这样的:
表格
语言
- 身份证
- 代码
新闻
- 身份证
- parent_id
- lang_id
- 标题
- 身体
型号
语言.php
class Language extends Eloquent {
public function news() {
return $this->hasMany('News');
}
}
News.php
class News extends Eloquent {
protected $table = 'newss';
public function language() {
return $this->belongsTo('Language','lang_id');
}
public function parent_news() {
return $this->belongsTo('News','parent_id');
}
public function child_news() {
return $this->hasMany('News','parent_id');
}
}
有人知道如何查询这样的东西吗? 我相信这可能不是检查翻译的最佳解决方案,所以如果有人有任何简化这个想法的建议,我会很高兴收到你的来信。
谢谢,
【问题讨论】:
-
谢谢 WereWolf,你的文章现在对我来说似乎有点不知所措,但我会试着消化它.. 这对我正在尝试的东西来说确实很有趣。
-
最终将 child_news() 更改为 translation() 以提高可读性。我最后只需要这个 @if($news->translations->count()) @foreach($news->translations as $translation) {{ $translation->language->code }} @endforeach
标签: mysql laravel-4 multilingual self-referencing-table