Crud com Laravel - #3 Banco de Dados
08/01/2020Na aula de hoje trabalharemos com a criação do banco de dados para uso em conjunto com o framework de PHP Laravel.
Banco de dados com Laravel
No nosso projeto utilizaremos três arquivos que ficarão assim:
.env
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:lnk/PzkZpup0zy5PddnTJOsEjlo51X4NtaZMxZya+ko=
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
/config/database.php
Um detalhe interessante é que ao criar o banco de dados, o collation deve ser o mesmo setado nesse arquivo. No caso utilizaremos o collation utf8mb4_unicode_ci e engine deve ser setado como InnoDB
/app/Providers/AppServiceProvider.phpVAmos alterar essa classe para que aceite colunas com comprimento de caracteres:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;
class AppServiceProvider extends ServiceProvider
{
public function register()
{
}
public function boot()
{
Schema::defaultStringLength(191);
}
}
Migrations e Model
As migrations são arquivos de configuração para banco de dados. Iremos criar o banco de dados e o model relativo ao nosso sistema. Para isso, acessaremos o terminal (cmd) e digitaremos o comando:
php artisan make:model Models\\ModelBook -m
O nosso arquivo ModelBook ficará assim:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class ModelBook extends Model
{
protected $table='book';
}
O nosso arquivo migration ficará assim:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateModelBooksTable extends Migration
{
public function up()
{
Schema::create('book', function (Blueprint $table) {
$table->increments('id');
$table->integer('id_user')->unsigned();
$table->foreign('id_user')->references('id')->on('users')->onDelete('cascade')->onUpdate('cascade');
$table->string('title');
$table->integer('pages');
$table->double('price',10,2);
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('book');
}
}
Ao fim vamos rodar o comando no nosso terminal para criação do banco de dados:
php artisan migrate
Sucesso nos códigos e na vida!