エンジニアの皆さんが、良記事をまとめて頂いて、問題解決をすることは可能ですが、そもそも、なぜそのような振る舞いをするのかを理解できない初心エンジニアも多数居ると思います。
そう言った方向けに、取り敢えず、この方針でコードを書けば、取り敢えずつまずかないはず、をまとめてみました。
想定環境は、
PHP 8.1.2
Laravel 9.34.0
です。
なお、あくまでも習得用になります。
プロジェクトのルールがある場合は、そちらに倣って下さいませ。
migrationファイルの作成
migrationファイルの作成は、
php artisan make:migration create_hoges_table --create=hoges
になります。
このhogesが曲者で、英語に詳しくないと困りますが、複数形にします。
具体的には、
movie → movies
などです。
そうしないと、後でmodelを編集する必要があります。
また、migrationファイル名は、規定はありませんが、
作成は、create、変更はmodify、削除はdelete
など、決めておいた方が良いでしょう。
ちなみに、デフォルトを使わずにhoges
をhoge
にしてしまって変更する場合は、
app/Models/hoge.php
の
class hoge extends Model
{
use HasFactory;
}
を
class hoge extends Model
{
use HasFactory;
protected $table = "hoge";
}
と1行書き加えます。
migrationファイルの編集
上記でmigrationファイルを作成しましたが、デフォルトでは、
public function up()
{
Schema::create('hoges', function (Blueprint $table) {
$table->increments('id');
$table->timestamps();
});
}
となると思います。
データベースの必須として、primary keyを利用しますが、このprimary keyは、increments()
で作ります。
この中の'id'
がデフォルトです。
これを変えると、後のコントローラーの
$hoge = hoges::find(1);
で、idを見に行こうとして、引っ掛かります。
ちなみに、デフォルトを使わずにid
をhoges_id
にしてしまって変更する場合は、
app/Models/hoge.php
の
class hoges extends Model
{
use HasFactory;
}
を
class hoges extends Model
{
use HasFactory;
protected $primaryKey = 'hoges_id';
}
と1行書き加えます。
今後
これから進めて行って書き加えていきます。
お楽しみに(誰が?)。