如何在Laravel中将3张表雄辩地结合在一起

时间:2019-10-10 03:30:38

标签: php laravel laravel-5 eloquent eloquent--relationship

如何用雄辩的inaravel组合3张桌子?

您好,有谁帮助我,我需要您的帮助。

您如何将以下三个表与laravel中的雄辩结合在一起?

下表结构和数字:

标签表结构 {tag_id:主键,tag_name,tag_category}

文章表结构 {article_id:主键,date_posting,内容,tag_id:外键}

查看表结构 {review_id:主键,date_review,reviewer_name,review_content,art​​icle_id:外键}

structure table

能给我示例view.blade,控制器和模型的源代码吗?

非常感谢您的回答:)

enter image description here

1 个答案:

答案 0 :(得分:1)

根据您的图片

标签有文章,文章有评论

Now Tag与Article共享one-to-manymany-to-one(inverse)关系

use App\Article;

class Tag extends Model{
    public function articles()
    {
        return $this->hasMany(Article::class);
    }
}

商品模型

use App\Tag;
use App\Review;

class Article extends Model{
    //Inverse relation for Tag and Article  
    public function tag()
    {
        return $this->belongsTo(Tag::class);
    }

   //Articles having reviews
   public function reviews()
   {
       return $this->hasMany(Review::class);
   }
}

在评论模型中

use App\Article;

class Review extends Model {
    public function article()
    {
        return $this->belongsTo(Article::clas);
    }

}

现在您可以使用eager loading

检索所有模型数据
App\Tag::with('articles.reviews')->get()