Модельный бизнес

Mar 28, 08:30 am Категория:   Комментарии

Кажется я сильно погорячился с заявлением, что мне для начала нужны только миграции, а модели потом. Ну закачал я данные в базу, ну порадовался, что могу ими теперь пользоваться. А ведь и не могу. От слова совсем. Для работы с базами данных в Laravel предназначены модели. В них же рекомендуют выносить из контроллеров и бизнес логику. А раз нужны модели, то таблицы нужно приводить в порядок, описывать связи, устанавливать правила и описывать как оно вообще должно работать.

Сначала о моделях. В Laravel это расширение базового класса Model используемой ORM Eloquent. ORM (англ. Object-Relational Mapping) – это объектно-реляционное отображение. По-русски это звучит столь же непотребно: реализация ООП шаблона Active Record по кличке Красноречивый решает. А если на практике, то всё просто отлично. Создаём модель

php artisan make:model Article

или модель с миграцией

php artisan make:model Article --migration

Про миграции надеюсь, всё понятно: сгенерируется отличный каркас миграции по имени 2016_03_23_030541_create_articles_table.php, в который следует добавить нужное и убрать лишнее для создания таблицы articles. А каркас модели для управления этой таблицей по имени Article выглядит вот так

<?php  namespace App;
 
use Illuminate\Database\Eloquent\Model;
 
class Article extends Model
{
    //
}

И… А всё, можно создавать объекты класса Article и пользоваться всеми возможностями ORM. Например, создать новую статью, задать заголовок и содержимое, записать статью в базу:

$article = new Article;
$article->title = 'Крутая статья';
$article->title = 'Улётный текст статьи';
$article->save();

Это уже работает. Кроме шуток. Первые тесты я проводил на простых сайтах, имеющих примитивные сценарии работы. Создал модели и даже не заглядывал в них. Просто получал из базы нужные данные и перекидывал их в представления. В моделях Laravel вообще куча вполне разумных умолчаний, позволяющих использовать их без долгих прелюдий, а вся мощь ORM Eloquent наследуется и доступна без дополнительных телодвижений. Имя таблицы базы данных, к примеру – это множественное число имени модели в нижнем регистре. Не устраивает? Можно задать своё.

Но если выходить за пределы тестовых заданий и лабораторных работ, то придётся немного поработать как руками, так и головой. Голова потребуется для понимания связей в базах данных вообще и в Eloquent в частности. А руками связи нужно будет закодировать и заставить работать. И тогда без проблем будут находиться теги, авторы и комментарии статей, а так же статьи авторов и категорий. Связи решают. Такой вывод.

Организация базы данных: Миграции

Mar 20, 11:10 pm Категория:   Комментарии

После всех отступлений и других телодвижений я опять добрался до базы, мать их, данных. В небольшой статье, посвящённой анализу базы Textpattern я вплотную подошёл к проектированию базы данных нового сайта на Laravel. Чтобы наше шоу не продлилось вечно, я напомню о том, что Laravel – это фремворк для веб-ремесленников. А значит, что главное результат, а не теория. Поэтому буду краток. Если получится.

Весь текст статьи