Как совместить 3 стола с красноречивым в Laravel - PullRequest
0 голосов
/ 10 октября 2019

Как объединить 3 таблицы с красноречивым inaravel?

Привет. Кто мне поможет, мне нужна ваша помощь.

Как вы объедините следующие три таблицы с красноречивым в laravel?

Следующая структура таблицы и рисунки:

Структура таблицы тегов {tag_id: первичный ключ, tag_name, tag_category}

Структура таблицы статей {article_id: первичный ключ, date_posting, content, tag_id:внешний ключ}

Просмотр структуры таблицы {review_id: первичный ключ, date_review, reviewer_name, review_content, article_id: внешний ключ}

структура таблицы

МожетВы даете мне пример исходного кода для view.blade, контроллера и модели.

Спасибо, очень полезный ответ:)

enter image description here

1 Ответ

1 голос
/ 10 октября 2019

Из вашего изображения

У тега есть статьи, а у статей есть откровение

Теперь тег имеет один-ко-многим и отношение многие-к-одному (обратное) с артикулом

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);
    }

}

СейчасВы можете получить данные всех моделей, используя Жесткая загрузка

App\Tag::with('articles.reviews')->get()
...