MySQLデータベースの列名が非常に一貫性のある(そうではない)プロジェクトで作業できてうれしいです。 camelCase、PascalCase、 'Id'、IDがあります。アプリケーションでEloquentの使用を開始することにしました(Laravelではありません)。私は、列名を知らなくても簡単に主キーの値を受け取る方法が欲しいです。
// User's primary key column is called UserID
$user = User::find(1337);
$userId = $user->id(); // = 1337
これを行うための雄弁な方法はありますか、それとも自分でこのメソッドを追加する必要がありますか?
モデルに保護フィールドを定義して、Eloquentに主キー列とは何かを伝える必要があります。
_protected $primaryKey = 'guid';
_
その後、モデルのそのプロパティにアクセスできます
モデルのgetKey()
メソッドは主キーの値を提供し、getKeyName()
は主キーに使用される列名を通知する必要があります