ホームページ  >  記事  >  PHPフレームワーク  >  laravelの強化されたスキーマデータ移行について

laravelの強化されたスキーマデータ移行について

藏色散人
藏色散人転載
2020-09-01 13:24:401819ブラウズ

Laravel の次のチュートリアルコラムでは、laravel の強化されたスキーマデータ移行について紹介します。

laravelの強化されたスキーマデータ移行について

コンセプト:

会社のプロジェクトを再構築するとき、新しい移行クラスを作成するたびに、データ テーブル、

新しい delete_at、created_at、updated_at、last_operator、last_operator_id を指定する必要があります。
これら 5 つのフィールドには、各行の削除時刻、新規時刻、変更時刻、および最後の演算子名が記録されます。 id,

したがって、私がコードを手動でコピーして貼り付けることなく、彼にこれらのフィールドを自動的に作成させることはできますか?時々忘れてしまうこともあります! !

    初回: スキーマの機能を強化します。つまり、移行ファイルを作成するための元のコマンドのこの機能を強化します: php 職人 make:migration ですが、コンポーザーによって laravel-admin がインストールされている場合に問題が発生することがわかりました、多くの移行ファイルは競合を引き起こします。
  • 2回目: この競合問題を解決するために、2回目のテストを実施しました: 元のコマンドではスキーマの機能拡張ができないので、phpArtisan makeコマンドを追加しましょう: app_migration
ただし、以下は 2 番目のテストの説明です。

1. 以下に示すように、新しい Schema クラスが app/Facade の下に追加され、mysql リンクを取得するための 2 つのメソッドが定義されています。このメソッドは、コンテナ

から db_extra オブジェクトを取得します。 laravelの強化されたスキーマデータ移行について

2. 次に、app/providers/ の下に DB サーバー プロバイダーを追加して、$app['db_extra'] サービス コンテナがこのオブジェクトを取得する方法を定義します

laravelの強化されたスキーマデータ移行について

3. 以下の図 2 の内容を分析します。 ->single Single インスタンスは、図 3 に示すように、db_extra クラスの生成に使用されるファクトリ クラスです。このファクトリ クラスは、次の図

laravelの強化されたスキーマデータ移行について

4 に配置されます。このファクトリ クラスは、システムの運用ファクトリ クラスを継承し、その機能を変更します。たとえば、今回は、接続された mysql サービス接続オブジェクトの場合、図 4 に示すように、定義した msyql 接続オブジェクトをインスタンス化させます

laravelの強化されたスキーマデータ移行について

5. 次に、この MysqlExtraConnection.php クラスで、親クラスのメソッドを再度オーバーライドします。新しい移行クラスを追加するコマンドを実行するときに、 、定義した移行テンプレートに従って移行ファイルを作成します

laravelの強化されたスキーマデータ移行について

#6。次に、図 6

に示すように、デフォルトで追加するフィールドを定義します。

laravelの強化されたスキーマデータ移行について

laravelの強化されたスキーマデータ移行について

#7. 次に、make:app_migration というコマンドを定義します。以下の 2 番目の図では、MigrationCreatorExt が独自の新しいクラスの挿入に依存していることに注意してください。 . このクラスは何に使用されますか?新しい移行ファイル

laravelの強化されたスキーマデータ移行について

laravelの強化されたスキーマデータ移行について

#8 に文字を出力するために使用されます。以下に示すように、テンプレートを作成して変更します

laravelの強化されたスキーマデータ移行について#9. create.stub テンプレートでは、デフォルトで定義したスキーマ クラスを呼び出すようにし、フィールドがデフォルトで追加されたことをコメントに記録しました

##10. これで完了です。設定は少し面倒ですが、拡張するのはとても簡単です。何か良い方法はありませんか? コメントで議論してくれてありがとう、へへlaravelの強化されたスキーマデータ移行について

以上がlaravelの強化されたスキーマデータ移行についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。