Подзапрос нескольких таблиц Laravel

Я использую Laravel 6.0 У меня есть 4 разных стола.

Таблицы:

post_category

я быRelationship_post_idpost_typecategory_id

photo_post

я бызаглавиеизображениесоздано на

text_post

я бызаглавиесодержаниесоздано на

video_post

я бызаглавиеvideo_source_urlсоздано на

Я хотел бы перечислить сообщения в двух диапазонах дат из таблицы post_category. Например

PostCategory::whereBetween('created_at',[$from, $to])->get();

Результат должен быть;

Результат

https://i.ibb.co/y53PmJ9/image.png

Как мне это сделать ?

Модели: PostCategory

class PostCategory extends Model
{
use SoftDeletes;
protected $table = 'post_category';
public $timestamps = true;

protected $fillable = [
    'relation_post_id',
    'post_type', // 1: text, 2: photo, 3: video
    'category_id',


];

public function text()
{
    return $this->belongsTo('App\TextPost','relation_post_id','id');
}
public function photo()
{
    return $this->belongsTo('App\PhotoPost','relation_post_id','id');
}
public function video()
{
    return $this->belongsTo('App\VideoPost','relation_post_id','id');
}}

TextPost

class TextPost extends Model
{
use SoftDeletes;
protected $table = 'text_post';
public $timestamps = true;

protected $fillable = [
    'title',
    'content',
];
}

PhotoPost

class PhotoPost extends Model
{
use SoftDeletes;
protected $table = 'photo_post';
public $timestamps = true;

protected $fillable = [
    'title',
    'image',

];
}

Видео сообщение

class VideoPost extends Model
{
use SoftDeletes;
protected $table = 'video_post';
public $timestamps = true;

protected $fillable = [
    'title',
    'video_source_url',

];
}

Не могли бы вы предоставить код ваших моделей Eloquent, которые у вас есть?

shaedrich 30.03.2021 17:35

хорошо, я обновил вопросы, спасибо

Android Test 30.03.2021 17:50

Ах хорошо. Довольно простой. В таком виде будет сложно иметь массив всех этих моделей. Вам придется отфильтровать их по отдельности, а затем объединить. Рассмотрите возможность использования полиморфных отношений, как указано ниже, поскольку ваш пример кажется почти предопределенным для этого случая и облегчит вашу жизнь программирования.

shaedrich 30.03.2021 17:57
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
3
30
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Конечно, это возможно. Но так как мы знаем только структуру вашей базы данных, но не кодовую базу, трудно сказать. Интуитивно я бы выбрал полиморфные отношения.

Другие вопросы по теме