[PHP][Laravel] primaryKeyが複数ある、またはint型でない場合にEloquentモデルでレコードを登録する

バージョン

Laravel 5.8

概要

複合主キーやint型以外の主キーの場合にcreate()でレコード追加しようとしたらエラーが発生する。
そんな時はモデルに以下を追加する。

public $incrementing = false;

詳細は公式を。 Eloquent:利用の開始 5.8 Laravel

主キーがint型でない場合も同様の対応で解決できる。

コード

◾️Model

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class HogeTable extends Model
{
    protected $primaryKey = ['key1', 'key2'];

    public $incrementing = false;

    protected $fillable = [
        'key1',
        'key2',
        'name',
        'title',
    ];

}



PHPフレームワーク Laravel入門

PHPフレームワーク Laravel入門