[整理と共有] Laravel モデルのタイムスタンプを使用するための 8 つのヒント
以下では、Laravel チュートリアルのコラムで、Laravel モデルのタイムスタンプの使用方法に関する 8 つのヒントを紹介します。使用したことがないかどうかを確認してください。まだ使用していない場合は、集めに来てください。皆さんのお役に立てれば幸いです。
デフォルトでは、Laravel Eloquent
モデルのデフォルト データ テーブルには created_at
と updated_at
が含まれていますフィールドが 2 つあります。もちろん、多くのカスタム構成を作成し、多くの興味深い機能を実装することができます。以下に例を示します。
1. タイムスタンプを無効にする
データ テーブルにこれら 2 つのフィールドがない場合、データを保存するときに Model::create($arrayOfValues ); ——SQL エラー
が表示されます。 Laravel
created_at / updated_at
を自動入力する場合、これら 2 つのフィールドが見つかりません。
タイムスタンプの自動入力を無効にし、Eloquent Model
に前の属性を追加するだけです:
class Role extends Model { public $timestamps = FALSE; // ... 其他的属性和方法 }
2. タイムスタンプのデフォルトのリストを変更します
現在、Laravel
以外のタイプのデータベースを使用している場合、つまりタイムスタンプ列の名前が異なる場合はどうなりますか?おそらく、それぞれ create_time と update_time と呼ばれます。おめでとうございます。モデル内で次のように定義することもできます:
class Role extends Model { const CREATED_AT = 'create_time'; const UPDATED_AT = 'update_time';
3. タイムスタンプの日付/時刻形式を変更します
次の内容は、公式 Laravel ドキュメント:
デフォルトでは、タイムスタンプは自動的に 'Y-m-d H:i:s'
としてフォーマットされます。タイムスタンプ形式をカスタマイズする必要がある場合は、モデルで $dateFormat
プロパティを設定できます。このプロパティは、日付がデータベースに保存される形式、および配列または JSON にシリアル化されるときの形式を決定します:
class Flight extends Model { /** * 日期时间的存储格式 * * @var string */ protected $dateFormat = 'U'; }
4. 多対多: タイムスタンプ付きの中間テーブル
多対多の関連付けの場合、ユーザー テーブル users とロールの間の中間テーブル role_user# など、タイムスタンプは自動的に入力されません。テーブル 役割 ##。
このモデルでは、次のように関係を定義できます:class User extends Model { public function roles() { return $this->belongsToMany(Role::class); } }
$roleID = 1; $user->roles()->attach($roleID);
にはタイムスタンプ が含まれません。そして Laravel は
created_at/updated_at
を追加し、->withTimestamps();
public function roles()
{
return $this->belongsToMany(Role::class)->withTimestamps();
}
5 を追加します。
latest() と ## を使用します。 #oldest()タイムスタンプ ソートの実行
タイムスタンプ ソートを使用するには 2 つの「ショートカット メソッド」があります。
代わりに:
User::orderBy('created_at', 'desc')->get();
User::latest()->get();
latest()
はcreated_at ソートを使用します。 これに対応して、oldest()
があり、このようにソートされますcreated_at ascending
User::oldest()->get();
$lastUpdatedUser = User::latest('updated_at')->first();
updated_at
# の変更をトリガーしないでください。 ##Eloquent
レコードが変更されるたびに、現在のタイムスタンプが updated_at
フィールドを維持するために自動的に使用されます。これは優れた機能です。 しかし、これを実行したくない場合もあります。たとえば、特定の値を追加するとき、これは「行全体の更新」ではないと考えます。
次に、上記と同じことを行うことができます - タイムスタンプ
$user = User::find(1); $user->profile_views_count = 123; $user->timestamps = false; $user->save();
7. スタンプとタイムスタンプのみを更新します。関連するタイムスタンプ
前の例とは逆に、他の列を変更せずに
updated_at フィールドのみを更新する必要があるかもしれません。
したがって、次の記述方法は推奨されません:$user->update(['updated_at' => now()]);
$user->touch();
updated_at
は、優れた関係の記録を更新することも望んでいます。 たとえば、comment が更新された場合、post
テーブルのupdated_at を更新するとします。 次に、モデルで $touches 属性を定義する必要があります:
class Comment extends Model { protected $touches = ['post']; public function post() { return $this->belongsTo('Post'); } }
8. タイムスタンプ フィールドの自動変換
Carbon
最後のヒントですが、すでにご存知のはずなので、リマインダーのようなものです。
デフォルトでは、created_at
フィールドと updated_at
フィールドは自動的に$dates, に変換されるため、変換する必要はありません。それらを Carbon インスタンスにコピーする、つまり Carbon のメソッドを使用できます。 例:
$user->created_at->addDays(3); now()->diffInDays($user->updated_at);
以上、簡単ですが役立つヒントでした。 英語の元のアドレス: https://laraveldaily.com/8-tricks-with-laravel-timestamps/翻訳アドレス: https://learnku.com/laravel/ t/39353
以上が[整理と共有] Laravel モデルのタイムスタンプを使用するための 8 つのヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています
