Доступ к 3 таблицам в Laravel с использованием внешнего ключа (laravel 6) - PullRequest
0 голосов
/ 03 апреля 2020

Я хочу показать данные из базы данных (sql), которая принадлежит указанному пользователю c.

У меня есть 3 таблицы: Области хранилищ пользователей

Это следующие отношения между таблицами:

Пользователь имеет одну область области имеет много магазинов

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

Модель пользователя

function area() {
    return $this->hasOne('App\Area');        
}

Модель района

 function user() {
    return $this->belongsTo('App\User');
}

function stores() {
    return $this->hasMany('App\Store');
}

Модель магазина

function area() {
    return $this->belongsTo('App\Area');
}

Моя база данных выглядит так:

таблица пользователей имя_идентификатора роль_идентификатора_области_1022 *

таблица областей имя пользователя user_id

таблица магазинов id name area_id

Как я могу получить доступ к user-> area-> store?

Это то, что я получил до сих пор

function show() {
    $id= Auth::user()->id;
    $user = User::find($id);
    echo($user->area->stores);
}

Спасибо

1 Ответ

1 голос
/ 03 апреля 2020

вы можете использовать hasManyThrough для получения сот области:

определить функцию хранилища в пользовательской модели

public function stores()
{
    return $this->hasManyThrough(Store::class, Area::class);
}

и использовать ее:

$stores = auth()->user()->stores;

Я надеюсь быть полезным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...