Mysql Laravel-查询自引用表

Mysql Laravel-查询自引用表,mysql,laravel-4,multilingual,self-referencing-table,Mysql,Laravel 4,Multilingual,Self Referencing Table,我有一个自参考表格,里面有新闻和它们各自的翻译。我要做的是查询要在索引新闻页面中显示的每个父新闻的翻译语言。 在“索引新闻”页面中,我有一个表,其中显示了我的所有父新闻,其中包括: 头衔 父新闻语言 儿童新闻语言(翻译)(这是我的问题!) 编辑 删除 有了这个,我想自动看到新闻的原始语言,并检查它是否已经被翻译 我的代码是这样的: 桌子 语言 -id -代码 新闻 -id -家长id -语言id -标题 -身体 模型 Language.php class Language extends E

我有一个自参考表格,里面有新闻和它们各自的翻译。我要做的是查询要在索引新闻页面中显示的每个父新闻的翻译语言。 在“索引新闻”页面中,我有一个表,其中显示了我的所有父新闻,其中包括:

  • 头衔
  • 父新闻语言
  • 儿童新闻语言(翻译)(这是我的问题!)
  • 编辑
  • 删除
有了这个,我想自动看到新闻的原始语言,并检查它是否已经被翻译

我的代码是这样的:

桌子

语言
-id
-代码

新闻
-id
-家长id
-语言id
-标题
-身体

模型

Language.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');
    }

}
有人知道如何质疑这样的事情吗? 我相信这可能不是检查翻译的最佳解决方案,因此,如果有人有任何简化此想法的建议,我将非常高兴听到您的建议

谢谢

class News extends Eloquent {
    protected $table = 'newss';
    function newss(){
        return $this->hasOne('News', 'parent_id');
    }
文档中说,对于自连接,使用
hasOne
方法

然后:


.谢谢狼人,你的文章现在对我来说似乎有点让人不知所措,但我会尽力消化的。。我所尝试的似乎很有意思。最后把child_news()改为translation(),以便更具可读性。最后我只需要这个@if($news->translations->count())@foreach($news->translations as$translation){{{{$translation->language->code}}@endforeach
News::find($news->id)->news()->whereRaw('parent_id= parent_id')->get();