[Laravel] SoftDeleteで、deleted_at以外のカラム名を使う
こんにちは、@yoheiMuneです。
Laravelの論理削除(SoftDelete)で、削除を表現するカラムを
そのような場合に、どうやって
例えば
https://github.com/illuminate/database/blob/2faaf98f91573a67489987066d3a1a30b057ab05/Eloquent/SoftDeletes.php#L157-L160
Laravelのコードを読むと、色々と勉強になります。
最後になりますが本ブログでは、PHP、Python、サーバー、フロントエンド、インフラ、Swift、Node.js、Java、Linux、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時の、解決の糸口に!」そんな目標でブログを書き続けています。ぜひ、本ブログのRSSやTwitterをフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!
Laravelの論理削除(SoftDelete)で、削除を表現するカラムを
deleted_at
以外にする方法を、ブログに書きたいと思います。なぜ必要か
Laravelで論理削除(SoftDelete)を行うことができますが、デフォルトではカラム名はdeleted_at
と決まっています。しかし例えば、Cake3で構築したデータベースを使い、サーバーはLaravelに作り変える場合などには、論理削除のカラム名が違う(deleted
など)ことがあります。そのような場合に、どうやって
deleted_at
以外のカラム名を指定するのかについて調べて実装したので、ブログにも残したい次第です。論理削除で使うカラム名に任意の名前をつける
論理削除用のカラムを指定するためには、DELETED_AT
という変数名を利用します。例えば
User
モデルであれば、以下のように実装します。// User Model. <?php namespace App; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { // 論理削除をON. use SoftDeletes; // 論理削除に使うカラム名を指定(ここでは「deleted」) const DELETED_AT = 'deleted'; // 日付として扱うカラムを定義(ここに論理削除に使うカラムも指定する) protected $dates = ['deleted']; }これで、
deleted
カラムを論理削除に使うことができます。もっと詳しく
上記のDELETED_AT
変数は、SoftDeletes
トレイトで利用されています。具体的には以下の箇所です。https://github.com/illuminate/database/blob/2faaf98f91573a67489987066d3a1a30b057ab05/Eloquent/SoftDeletes.php#L157-L160
Laravelのコードを読むと、色々と勉強になります。
最後に
今回のお話はドキュメントには見当たらずでした。Laravelのコードを眺める機会が増えてきた気がします。ライブラリの中を読んでいくと学べることが多くて楽しいなと感じています。最後になりますが本ブログでは、PHP、Python、サーバー、フロントエンド、インフラ、Swift、Node.js、Java、Linux、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時の、解決の糸口に!」そんな目標でブログを書き続けています。ぜひ、本ブログのRSSやTwitterをフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!