2014-02-13 40 views
0

我正在社交应用程序前端Angualar,后端laravel和数据库Mongodb。我有类似的模型:使用关系在单一的Eloquent Query laravel中获取数据?

Hoots 
----------------- 
- _id 
- content 
- publish_id 

Article 
----------------- 
- _id 
- content 
- publish_id 

Story 
----------------- 
- _id 
- content 
- publish_id 

Publish 
----------------- 
- _id 
- post_id 
- type 
- user_id 

帖子的ID在发布所属hoots,文章和故事,其中type表示wheather是叱,文章或故事_id。

我有型号这样

//Article model 
class Article extends Eloquent { 

    public function getpublish(){ 
    return $this->hasMany('Publish','post_id'); 
    } 
    } 
//Story model 
class Story extends Eloquent { 

    public function get_publish(){ 
    return $this->hasMany('Publish','post_id'); 
    } 
    } 

//Hoots model 
class Hoots extends Eloquent { 

    public function get_publ(){ 
    return $this->hasMany('Publish','post_id'); 
    } 
    } 

//Publish model 
class Publish extends Eloquent { 

    public function getdata(){ 

    return $this->BelongsTo('Hoots','Article','Story','publish_id'); 
    } 
    } 

我使用这个我只能得到与一个模型只即hoots POST_ID相应的数据一起发布的数据使用

Publish::with('getdata')->where('user_id',Auth::user()->id)->get(); 

。我想从这三个表中得到这个。

我想获取发布模型数据及其相应的post_id数据。我如何使用口才能完成这个o单个查询。

+0

确实很难找出你所要求的。你能否提供你期望的结果表格?\ –

+0

@Gaz_Edge我已经更新了代码。 Kindly Review.how我可以获得发布模型数据以及具有外键publish_id的三个不同模型的post_id相应数据吗? –

回答

1

我想也许你没有正确地建立你的关系;

//Publish model 
class Publish extends Eloquent { 

    public function hoot(){ 

    return $this->HasMany('Hoots','publish_id'); 
    } 
    } 

    public function article(){ 

    return $this->HasMany('article','publish_id'); 
    } 
    } 

    public function story(){ 

    return $this->HasMany('stort','publish_id'); 
    } 
    } 

Publish::with(array('hoot', 'story', 'article'))->where('user_id',Auth::user()->id)->get(); 
+0

我不是为什么,但这个东西不工作,我只是得到Id不是内容?如上所示,我在连接中指定表名。我正在使用的数据库是mongodb –

+0

查看更新的答案 –

+0

非常棒的人。我正在尝试同样的事情,但与属地。 hasmany做th魅力。谢谢 –

相关问题