- 1. 概要
- 2. 状況
- 3. 応急処置
- 4. わたしだけのオチ
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行を実際に使用している、カラム名に書き換えます。
4. わたしだけのオチ
これは、わたしだけのオチになるのですが・・・。
実は、新規に「Laravel 12」のサイトを作成しなおして、モジュールをインストールした際に。
[project path]/app\Models\User.php
ちゅうのができておりまして、その中に「CREATED_AT」「UPDATED_AT」の定義をしたのですが、それは、有効になっておらず。
移植元「Laravel Framework 8.83.27」で作成していた別モジュールの方が有効になっていました。
ところが、新規の「app\Models\User.php」を削除すると、ログイン時に。
include(/var/www/jwillold/vendor/composer/../../app/Models/User.php): Failed to open stream: No such file or directory
|
|