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';
}