Laravelでのプロジェクト開発のはじめかた
2023-12-31 記載
概要 : artisanでデータベースをつくってModelをつくって出だしを加速させる。
Keyword : Laravel, PHP, MySQL,
備忘録を兼ねてLaravel開発の進め方を記録しておきます。
(コメントを受け付ける掲示板ページの作成を想定しています)
DOS窓をあげてLaravelを展開したフォルダへ移動します。
cd C:\home\cfsid\cfsid.cloudfree.jp\public_html\xbbs
テーブル作成用のファイルを作ります。
php artisan make:migration create_lv_bbs --
create=lv_bbs
以下のファイルが自動作成されます。
xbbs\database\migrations\2023_12_31_112849_create_lv_bbs.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.
*/
public function up(): void
{
Schema::create('lv_bbs', function (Blueprint $table) {
$table->id();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('lv_bbs');
}
};
カラムは
$table->id();
$table->timestamps();
の2つのみ。
ここに開発テーブルに必要なカラムを追加します。
MySQLで一般的に使用されるデータ型と、それに対応するLaravelの書き方を示します。(ChatGPT君に教えてもらいました。一部、補足と追記あり)
INTEGER: 整数
Laravelでは$table->integer('column_name');として定義します。
VARCHAR: 可変長文字列
Laravelでは$table->string('column_name', length);で定義します。lengthは文字列の最大長です。
※デフォルトの文字列長255
CHAR: 固定長文字列
Laravelでは$table->char('column_name', length);として定義します。lengthは文字列の長さです。
TEXT: 長いテキストデータ
Laravelでは$table->text('column_name');として定義します。
※string255文字を超えるとtextを検討してよし。
DATE: 日付
Laravelでは$table->date('column_name');として定義します。
DATETIME: 日付と時刻
Laravelでは$table->dateTime('column_name');として定義します。
BOOLEAN: 真偽値
Laravelでは$table->boolean('column_name');として定義します。
FLOAT: 浮動小数点数
Laravelでは$table->float('column_name');として定義します。
DOUBLE: 倍精度浮動小数点数
Laravelでは$table->double('column_name', total_digits, decimal_digits);として定義します。total_digitsは合計桁数、decimal_digitsは小数点以下の桁数です。
DECIMAL: 十進数
Laravelでは$table->decimal('column_name', total_digits, decimal_digits);として定義します。total_digitsは合計桁数、decimal_digitsは小数点以下の桁数です。
ENUM: 列挙型
Laravelでは$table->enum('column_name', ['value1', 'value2', 'value3']);として定義します。列挙する値を配列で指定します。
列挙型はPHPのバージョンとは関係なくLaravel 5.1から使用可能。
例:
Schema::create(‘example’, function (Blueprint $table) { $table->enum(‘status’, [‘active’, ‘inactive’, ‘pending’]); });status
カラムは 'active'
, 'inactive'
, 'pending'
のいずれかの値しか受け付けない列挙型のカラムとして作成されます。
定義を書き加えたら、以下でデータベースに反映させます。
php artisan migrate
続いてModelファイルを作成。
php artisan make:model Lv_bbs
続いてControllerファイルを作成。
php artisan make:controller Lv_bbsController
Controllerファイルは中身からっぽなので、このあたりから作りこんでいくことになります。
とりあえずここまで。