#発生している現象
Laravel8でModelを作成し、主キーのid(自動採番)とは別にid推測されないようにするために、uuidを設定するカラムを作成しました。
uuidは自動で入るのですが、なぜかCreateする際に、idにもuuidが入っており、整数以外入れるなとエラーが出てしまいます。
原因わかりますでしょうか?
#環境
Laravel8
PHP7.4.2
#コード
Model(Report.php)の一部
class Report extends Model { use HasFactory; use Searchable; protected $fillable = ['user_id','title','description','account_name','is_account_name_null','report_uuid']; public function scopeUuid($query,$uuid){ return $query->where('report_uuid',$uuid)->first(); } public function scopeGetUudFromId($query,$uuid){ return $query->where('report_uuid',$uuid)->first()->report_uuid; } ** 省略** protected static function boot(): void { parent::boot(); self::creating(function ($model){ $model->report_uuid = (string) Str::orderedUuid(); }); }
Migrationファイル
class CreateReportsTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('reports', function (Blueprint $table) { $table->id(); $table->uuid('report_uuid')->unique()->index(); $table->foreignId('user_id')->constrained(); $table->string('title'); $table->string('description'); $table->string('account_name'); $table->boolean('is_account_name_null')->default(false); $table->timestamps(); });
追加のMigrationファイル
class AddGameModeToReportsTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::table('reports', function (Blueprint $table) { $table->foreignId('game_mode_id'); $table->foreignId('character_id'); }); }
Create部分
$report = Report::create([ "user_id" => Auth::id(), "title" => $request->input('report-title'), "description" => $request->input('report-description'), "character_id" => $request->input('character'), "game_mode_id" => $request->input('game_mode'), "account_name" => $request->input('account-name', 'none'), "is_account_name_null" => $request->input('cantReadCheck', false) == "on", "time_unknown" => $request->input('unknown_time_check', false) == "on", "occurrence_date" => $date, ]);