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 5 years have passed since last update.

【Laravel】Eloquentモデルで使用カラムをカスタマイズする

Posted at

Eloquentモデルで、使用カラムをカスタマイズする(=デフォルト以外のカラムを使用する)方法です。

環境

  • PHP:バージョン7.3.7
  • Laravel:バージョン5.8
  • OS:Windows10

Eloquentモデルのキホン

データベーステーブルと紐づくモデル。
対応は以下の通り。

  • データベーステーブル:小文字複数形(例:flights)

  • Eloquentモデル:頭文字のみ大文字(パスカルケース)単数形(例:Flight)

デフォルトでは、

  • idを主キーと想定
  • 作成時間 created_at、更新時間 updated_atを自動的に更新

しています。

使用カラムのカスタマイズ

1. id以外を主キーにする

Member.phpに紐づく、membersテーブルの主キーがmember_noの場合は以下のように記述します。

Member.php
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Member extends Model
{   
    protected $primaryKey = 'member_no';
}

2. 作成時間 created_at、更新時間 updated_atを自動的に更新しないようにする

membersテーブル更新時に、作成時間 created_at、更新時間 updated_atが更新されないようにするためには以下のように記述します。

Member.php
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Member extends Model
{   
    protected $timestamps = false;
}

3. 作成時間、更新時間にcreated_at、updated_at以外

membersテーブルにおいて、作成時間のカラムcreated_timeが、更新時間のカラムがupdated_timeの場合は以下のように記述します。

Member.php
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Member extends Model
{   
    const CREATED_AT = 'created_time';
    const UPDATED_AT = 'updated_time';
}

参考

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?