2 урок «фундамент».

В прошлом уроке, мы разобрались, какие сущности будут в ядре нашего блога.
Что будем делать дальше?
Дальше мы поставим два пакета — Eloquent-Sluggable и Forms & HTML
На страницах подробно расписано как устанавливать эти компоненты, так что двигаемся дальше.

Как вы наверняка знаете фреймворк laravel работает по концепции MVC.

Итак, очень вкратце, что это. Это означает что у нашего приложения есть модели, контроллеры и представления.

Про представления пока говорить не будем, так как мы проектируем ядро нашего проекта, о фронтенде будем говорить потом.

Контроллер получает http запрос от клиента (браузера) и на основании полученных данных обращается к определенной модели для получения нужных данных. Это совсем вкратце, если кому то интересно почитать — гуглите.

Приступим, для начала нам необходимо создать модели. Мы можем создавать их в ручную, но это дичь полная, у нас есть замечательный инструмент — artisan, который в «два клика» нам позволить сделать все что нам надо.
Вернемся к прошлому посту и увидим, какие модели нам нужны.

Открываем консоль опенсервера, переходим в папку проекта и пишем команду —

php artisan make:model Category

в консоли мы должны увидеть ответ —

Model created successfully.

Проверим наверняка, в папке /project/app должен появится файл Category.php с содержимым


namespace App;

use Illuminate\Database\Eloquent\Model;

class Category extends Model
{
//
}

Да, можно создать все в ручную, но согласитесь, что артизан сэкономить оооочень много времени.

Далее, нам необходимо создать файл миграции.
Делается это командой php artisan make:migration.
Нам необходимо будет ввести

 php artisan make:migration create_categories_table --create=categories

В консоле вы должны будете увидеть

Created Migration: 2018_04_17_100343_create_categories_table

Так же проверим, зайдем в папку /project/database/migration и увидим там новый файл, с содержимым

 use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateCategoriesTable extends Migration {     /**      * Run the migrations.      *      * @return void      */     public function up()     {         Schema::create('categories', function (Blueprint $table) {             $table->increments('id');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('categories');
    }
}

В этом файле нам необходимо описать нашу таблицу, на этапе планирования мы решили, что у сущности Category у нас будут атрибуты — title и slug. Добавим два эти атрибута в функцию up.

    public function up()
    {
        Schema::create('categories', function (Blueprint $table) {
            $table->increments('id');
            $table->string('title');
            $table->string('slug');
            $table->timestamps();
        });
    }

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

111

Если у вас будет похожая проблема, то вам нужно будет открыть файл app/Providers/AppServiceProvider.php, добавить в блок use строку —

use Illuminate\Support\Facades\Schema;

, а метод boot должен выглядеть подобным образом

public function boot()
{
    Schema::defaultStringLength(191);
}

После этого, всего пройдет как надо.

Чтобы убедится в этом, зайдете в phpmyadmin и проверьте какие таблице есть в бд, у вас должно быть как на скрине ниже.

phpmyadmin

Аналогичным образом, создаем модели и миграции для всех сущностей, заполняем миграции и потом запускаем миграцию. Чтобы еще сильнее ускорить процесс используйте команду php artisan make:model someThing -m, флажок -m, сразу же создаст файл миграции для нужной модели.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *