0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Laravel初心者がエラーではまらない、デフォルトの流儀

Posted at

エンジニアの皆さんが、良記事をまとめて頂いて、問題解決をすることは可能ですが、そもそも、なぜそのような振る舞いをするのかを理解できない初心エンジニアも多数居ると思います。
そう言った方向けに、取り敢えず、この方針でコードを書けば、取り敢えずつまずかないはず、をまとめてみました。
想定環境は、
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
など、決めておいた方が良いでしょう。

ちなみに、デフォルトを使わずにhogeshogeにしてしまって変更する場合は、
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を見に行こうとして、引っ掛かります。

ちなみに、デフォルトを使わずにidhoges_idにしてしまって変更する場合は、
app/Models/hoge.php

class hoges extends Model
{
    use HasFactory;

}

class hoges extends Model
{
    use HasFactory;

    protected $primaryKey = 'hoges_id';
}

と1行書き加えます。

今後

これから進めて行って書き加えていきます。
お楽しみに(誰が?)。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?