我正在开发社交应用程序前端Angualar,Backend laravel和数据库Mongodb。我有这样的模型:
Hoots
-----------------
- _id
- content
- publish_id
Article
-----------------
- _id
- content
- publish_id
Story
-----------------
- _id
- content
- publish_id
Publish
-----------------
- _id
- post_id
- type
- user_id
发布中的帖子ID属于hids,文章和故事中的_id,其中type表示它是hoot,文章或故事。
我有这样的模型
//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');
}
}
我正在使用
Publish::with('getdata')->where('user_id',Auth::user()->id)->get();
使用这个我只能在一个模型中获得发布数据以及post_id相应的数据,即仅仅是h h。我想从这三个表中得到这个。
我想用相应的post_id数据获取发布模型数据。如何使用eloquent完成此单个查询。
答案 0 :(得分: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();