Читать книгу Laravel – гайд по выживанию - - Страница 4

4. Модельные отношения

Оглавление

Разработчик-зомби борется с отношениями, но разработчик Laravel превосходно пользуется преимуществами отношений в базе данных.


Зомби не хватает интеллекта для создания значимых отношений –связей между таблицами. В отличие от них, класс Eloquent в Laravel позволяет без особых усилий устанавливать и использовать отношения между таблицами.

Модельные отношения


Отношения связывают данные между таблицами. Представьте, что вы ведете блог с таблицами 'posts' и 'comments'.


Эти таблицы взаимосвязаны. У поста может быть МНОГО КОММЕНТАРИЕВ, в то время как комментарий всегда будет относиться к конкретному посту. Это называется отношениями.


Давайте создадим еще одну таблицу с именем weapons:


Таблица weapons:



Обратите внимание на столбец 'zombie_id'. Он ссылается на столбец 'id' в таблице Zombies. Эта связь, известная как внешний ключ (Foreign Key), возникает, когда строка одной таблицы однозначно идентифицирует строку другой таблицы. Этот внешний ключ обеспечивает надежную связь между таблицами Weapons и Zombies.


Рассмотрим два вида оружия в нашей базе данных, связанных с зомби:



Выше вы видите, что мы включили "Топор" для зомби с идентификатором 2 и "Дробовик" для зомби с идентификатором 1.


Теперь сформулируем модель оружия для связи с таблицей оружия. Путь к ней – app/Models/Weapon.php:


<?php namespace App\Models;


use Illuminate\Database\Eloquent\Model; class Weapon extends Model {

protected $table = 'weapons';

}


Для отображения информации о зомби, включая его оружие, мы можем использовать этот код:

Laravel – гайд по выживанию

Подняться наверх