2016-07-18 3 views
0

Я новичок в Laravel 5.2 и работаю над старой системой и немного запутался в отношении красноречивого и был бы признателен за то, что кто-то дал мне код.Laravel Eloquent Relationship 3 tables

Есть 3 таблицы:

карты категории cards2cat

карты могут быть частью много категорий, которые хранятся в таблице cards2cat.

Таблица cards2cat имеет следующую структуру

идентификатор (первичный ключ) изображения (карта) категории

То, что я хочу сделать, это иметь метод в модели карт под названием что-то вроде getCardsWithCategores который вернул информацию о картах плюс имена категорий из таблицы категорий.

В таблице категорий есть ключ id и категория поля.

Спасибо!

+0

Можете ли вы предоставить миграцию для трех таблиц? – theMohammedA

+0

Поскольку это устаревшая система, я не использовал миграции. Основными моментами являются карты - индекс по идентификатору, категории - id и category, а card2cat - индекс с идентификатором с двумя другими полями (оба целочисленных) изображения (которые являются идентификатором карты) и категориями, поскольку это устаревшая система, я не – Jim

ответ

1

Перейти к модели Card2Cats и добавить:

public function categories() 
{ 
    return $this->hasOne('App\Categories','id','category'); 

} 

public function cards() 
{ 
    return $this->hasOne('App\Cards','id','image'); 
} 

Для запроса вы делаете это:

$cards = Card2Cat::with('categories','cards')->get(); 
foreach ($cards as $key => $value) { 
    echo $value->id.', Card:'.$value->cards->name.', Category:'.$value->categories->category.'<br>'; 

//$value->cards gives you all column of cards and you can do 
//$value->cards->colName 
// same goes for $value->categories 
} 

Убедитесь, что написание ваших классов и имен столбцов таблицы правильны перед запуском код: D