Как получить список корневых родителей по красноречивым отношениям laravel - PullRequest
0 голосов
/ 23 ноября 2018

Я поставил одну вещь в Laravel.У меня огромная база данных с такими таблицами: товары, категории и регионы.

Товары

  • id
  • category_id
  • region_id

Категории

  • id
  • parent_id = category.id или 0, если это root

Регион

  • id
  • parent_id = region.id или 0, если это root

И я должен получить все корневые регионы, которые подключены к определенной категории.Единственное решение, которое я вижу, это сделать это так

$products = Category::products->all();
$rootCategories = [];
foreach($products as $product){
 $rootCategories[] = $product->region->ultimateParent(); //Region::ultimateParent();
}

Как вы думаете, есть какой-то более красноречивый способ решить эту проблему?

1 Ответ

0 голосов
/ 02 марта 2019

Вы должны использовать соединение как:

$query=DB::table('products')
       ->join('categorie','products.catagory_id','=','catagories.id')
       ->join('region','products.region_id','=','region.id')
       ->select('products.*','catagories.*',region.*'
       ->get();

Этот запрос даст вам все поля из всех 3 таблиц.

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