Как связать таблицу «Баннеры и услуги» в проекте Laravel 5.x - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь связать две таблицы в моем проекте Laravel 5.x. Один - стол для баннеров, а другой - стол для услуг. Я не могу понять, какое отношение Eloquent мне следует использовать.

На слайдере карусели моей домашней страницы каждый из баннеров должен представлять одну из записей из таблицы служб. Единственное, что мне нужно из таблицы Services - это значение столбца 'slug', связанного с сервисом.

Я думал, что могу связать две таблицы, используя столбец service_id в модели Banner, указывающий на 'id столбец сервисной модели. Затем, используя это отношение для извлечения значения 'slug' из модели Service.

Сначала я попробовал это на модели Banner:

public function services() {
    return $this->hasMany('App\Service');
}

и получил значение, используя:

$slide->services->slug

но это не сработало. Затем я попытался использовать метод принадлежащий "вместо" hasMany. Это тоже не сработало.

Понятия не имею, какое красноречивое отношение и как его использовать. Я открыт для всех предложений.

1 Ответ

0 голосов
/ 07 апреля 2020

Я решил это, не используя отношения Eloquent вместо простого оператора Join в построителе запросов.

$banners = DB::table('banners')
            ->join('services', 'banners.service_id', '=', 'services.id')
            ->select('banners.*', 'services.slug')
            ->get();
...