Читаем Laravel – гайд по выживанию полностью

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

Предположим, что мы создали еще одного зомби:

Имя: Ted Manwalking

Strength: Слабый

Здоровье: 90

Тогда в нашей базе данных появятся следующие записи:

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

<p>4. Модельные отношения</p>

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

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

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

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

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

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

Таблица weapons:

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

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

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

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

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

protected $table = 'weapons';

}

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

use App\Models\Zombie as Zombie; use App\Models\Weapon as Weapon;

Route::get('/zombie/{id}', function($id){

$zombie = Zombie::find($id);

echo 'Name: ' . $zombie->name . '
';

echo 'Strength: ' . $zombie->strength . '
'; echo 'Health: ' . $zombie->health . '
';

Перейти на страницу:

Похожие книги

1С: Управление небольшой фирмой 8.2 с нуля. 100 уроков для начинающих
1С: Управление небольшой фирмой 8.2 с нуля. 100 уроков для начинающих

Книга предоставляет полное описание приемов и методов работы с программой "1С:Управление небольшой фирмой 8.2". Показано, как автоматизировать управленческий учет всех основных операций, а также автоматизировать процессы организационного характера (маркетинг, построение кадровой политики и др.). Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, формировать разнообразные отчеты, выводить данные на печать. Материал подан в виде тематических уроков, в которых рассмотрены все основные аспекты деятельности современного предприятия. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов. Все приведенные в книге примеры и рекомендации основаны на реальных фактах и имеют практическое подтверждение.

Алексей Анатольевич Гладкий

Экономика / Программное обеспечение / Прочая компьютерная литература / Прочая справочная литература / Книги по IT / Словари и Энциклопедии