Laravel - トラブルシュート - Laravel 12 - リレーション"users"の列"updated_at"は存在しません


 クラウディア


1. 概要
2. 状況
3. 応急処置

1. 概要

 これは、ユーザ管理のユーザ作成・更新を保存するテーブルのカラム名が異なっているためです。

2. 状況

 これ、本来は下記のサイトに書かれているように。
Eloquent: Getting Started - Laravel 12.x - The PHP Framework For Web Artisans」
「11.x Eloquentの準備 Laravel」
「Laravel のモデルクラスの生成について
 プロジェクトのディレクトリで。

php artisan make:model ClassName
 てな感じで、「Model」の派生クラスが作られ、下記の内容になっているので。

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class ClassName extends Model
{
    //
}
 8~9行の間に。

    const CREATED_AT = 'create_date_column';
    const UPDATED_AT = 'update_date_column';
 と、実際に使用しているカラム名を定義してやると、うまくいくはずなのですが・・・。  これが、今んとこ(2025年4月22日)うまくいってないんだな・・・。

3. 応急処置

 応急処置で(苦し紛れともいう)。

vi [project path]/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php

    /**
     * The name of the "created at" column.
     *
     * @var string|null
     */
    const CREATED_AT = 'created_at';

    /**
     * The name of the "updated at" column.
     *
     * @var string|null
     */
    const UPDATED_AT = 'updated_at';
 256、263行を実際に使用している、カラム名に書き換えます。