Вход/Регистрация
Laravel – гайд по выживанию
вернуться

Nulls

Шрифт:

Модель Zombie

Возьмем, к примеру, модель Zombie, которая будет размещена по адресу /app/Models/Zombie.php:

<?php

namespace App\Models;

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

protected $table = 'zombies';

}

Этот код сообщает Laravel, что класс Zombie соответствует таблице zombies в вашей базе данных. Гипотетическая таблица zombies может выглядеть следующим образом:

zombies table

Совет: Laravel автоматически управляет полями updated_at и created_at, если они существуют, регистрируя временные метки для новых добавленных строк и любых обновлений. Данные поля не нужно создавать. При написании миграции достаточно добавить timestamps, но об этом позже.

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

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

Eloquent: ORM в Laravel

Eloquent, ORM (Object-Relational Mapper) в Laravel, упрощает и украшает работу с базой данных. Вспомним код из предыдущего раздела:

<?php

use App\Models\Zombie; Route::get('/zombie/{id}', function($id){

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

echo 'Name: ' . $zombie->name . '<br />';

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

});

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

Стоит отметить, что, вызывая Zombie, мы обращаемся именно к классу Zombie, расположенному по адресу App\Models\Zombie. Это понятие известно, как пространство имен, которое мы рассмотрим в одной из следующих глав.

Тем не менее, препятствие все еще существует.

Не имея в базе данных ни одного зомби, мы не можем получить доступ к упомянутому выше маршруту. Поэтому давайте создадим нового зомби по приведенному ниже маршруту:

<?php

Route::get('/admin/zombies/create', function{

echo '<form method="POST" action="/admin/zombies/create">

<input type="text" name="name" placeholder="Name"><br>

<input type="text" name="strength" placeholder="Strength"><br>

<input type="text" name="health" placeholder="Health"><br>

<input type="hidden" name="_token" value="' . csrf_token . '">

<input type="submit" value="Create New Zombie">

</form>';

});

При посещении этого маршрута в браузере (site.com/admin/zombies/create) отображается простая форма.

При отправке формы данные публикуются в файл

site.com/admin/zombies/create POST-маршрут, который должен выглядеть следующим образом:

<?php

Route::post('/admin/zombies/create', function {

// создаем нового зомби

});

Добавив следующую реализацию:

<?php

use App\Models\Zombie;

use Illuminate\Http\Request;

Route::post('/admin/zombies/create', function(Request

$request){

// instantiate a new zombie

$zombie = new Zombie;

$zombie->name = $request->name;

$zombie->strength = $request->strength;

$zombie->health = $request->health;

  • Читать дальше
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: