Создание первой таблицы и связь с базой данных на Laravel 8
Информация в данной статье приведена исходя из того, что у вас уже становлен Laravel 8 на хостинге (см Установка Laravel на хостинг ) а также в файле .env в корне сайта настроено соединение с базой данных MySQL.
Итак, используем миграции для создания нашей первой таблицы tasks и в командной строке введем
php artisan make:migration create_tasks_table
После выполнение этой команды в папке database/migrations появится новый файл 2021_01_17_161925_create_tasks_table.php с таким кодом
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateTasksTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('tasks', function (Blueprint $table) {
$table->id();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('tasks');
}
}
Структура будущей таблицы уже прописана в методе up.
Добавим туда еще одно поле 'name', чтобы он выглядел следующим образом
public function up()
{
Schema::create('tasks', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->timestamps();
});
}
Теперь с помощью команды artisan создаем таблицу в базе данных на основе нашей инструкции (миграции).
php artisan migrate
В результате в нашей базе данных появится новая таблица с полями:
id (с уже готовым autoincrement)
name
created_at
updated_at
Теперь создадим модель Eloquent для дальнейше работы с нашей таблицей.
Для этого используем команду
php artisan make:model Task
Модель будет помещена в каталог app вашего приложения. По умолчанию класс модели пуст. Нам не надо явно указывать, какой таблице соответствует Eloquent модель, потому что подразумевается, что имя таблицы – это имя модели во множественном числе (s на конце). В этом случае модель Task, как предполагается, соответствует таблице базы данных tasks. Вот на что должна быть похожа наша пустая модель:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Task extends Model
{
use HasFactory;
}
Итак модель создана, в следующей статье мы научимся наполнять таблицу данными и выводить их в представление.