Laravel v9 MySQL v8 のセットアップ
ディレクトリ
configフォルダのdatabase.php
database.php
'default' => env('DB_CONNECTION', 'mysql'),
.env
.env
// mysql の設定を記述
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=todos
DB_USERNAME=root
DB_PASSWORD=
データーベースを作成
phpMyAdminを使って、todosを作成
※テーブルの作成は不要
migrtionファイルを作成
terminal
php artisan make:migration create_todos_table
create_todos_table.php
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('todos', function (Blueprint $table) {
$table->increments('id');
$table->string('task');
$table->boolean('completed');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('todos');
}
};
マイグレーション
terminal
php artisan migrate
todosにテーブルが作成される
ダミーファイルを作成
DatabaseSeeder.php
<?php
namespace Database\Seeders;
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
// コメントアウト
\App\Models\User::factory(10)->create();
// \App\Models\User::factory()->create([
// 'name' => 'Test User',
// 'email' => 'test@example.com',
// ]);
}
}
seedの実行
terminal
php artisan db:seed
テーブルの確認
テーブルのリフレッシュ
terminal
php artisan migrate:refresh
seedのリフレッシュ
terminal
php artisan migrate:refresh --seed
modelを作成
Todoのmodelを作成
terminal
php artisan make:model Todo
Todoのseedの作成
DatabaseSeeder.php
<?php
namespace Database\Seeders;
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use App\Models\Todo;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
\App\Models\User::factory(10)->create();
// \App\Models\User::factory()->create([
// 'name' => 'Test User',
// 'email' => 'test@example.com',
// ]);
// マニュアル
Todo::create([
'task' => "Buy Car",
"completed" => false,
]);
// オート
Todo::factory(10)->create();
}
}
factoryファイルを作成
terminal
php artisan make:factory TodoFactory
TodoFactory.php
<?php
namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Todo>
*/
class TodoFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array<string, mixed>
*/
public function definition()
{
return [
"task" => $this->faker->sentence(),
"completed" => false,
];
}
}
自動でseedを作成
terminal
php artisan migrate:refresh --seed
seederを作る場合
terminal
php artisan make:seeder SampleSeeder
php artisan db:seed --class=SampleSeeder
php aritsan migrate
controllerを作る
terminal
php artisan make:controller StationaryController --resource --model=Stationary