Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#2 Laravel 4 » Несколько внешних ключей » 19.09.2014 12:54:17

Krapetor
Ответов: 2

Недавно начал изучать  Laravel и не до конца понимаю логику Eloquent. Подскажите, пожалуйста, как правильно сделать следующее:
Есть три таблицы: альбомы, группы и композиции. Таблица композиций связана внешними ключами с альбомами и группами.

music.png

CREATE TABLE `albums` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `album_name` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB;


CREATE TABLE `bands` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `band_name` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB;


CREATE TABLE `tracks` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `band_id` int(11) NOT NULL,
  `album_id` int(11) NOT NULL,
  `track_name` varchar(100) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `band_id` (`band_id`),
  KEY `album_id` (`album_id`)
) ENGINE=InnoDB;

ALTER TABLE `tracks`
  ADD CONSTRAINT `tracks_ibfk_2` FOREIGN KEY (`album_id`) REFERENCES `albums` (`id`),
  ADD CONSTRAINT `tracks_ibfk_1` FOREIGN KEY (`band_id`) REFERENCES `bands` (`id`);

Подскажите, каким методом получить список композиций, вместе с названиями альбомов и групп, используя ORM?
680c0e9557104e155272aa54b97b4c9c45a273cf.jpg


Т.е. аналог sql запроса

SELECT tracks.id, track_name, album_name, band_name
FROM tracks, bands, albums
WHERE tracks.album_id = albums.id
AND tracks.band_id = bands.id

Подозреваю, что у меня совсем простой вопрос, но я раньше с ORM не сталкивался.

Подвал раздела