問題タブ [vapor-fluent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vapor - Fluent in Vapor 4 を使用した複雑なクエリ
兄弟フィールドに特定のユーザーを含むチャットを照会したい。
単純化されたモデル:
私のフェッチルート:
私は得る[ ERROR ] server: column chats.users does not exist (errorMissingColumn)
そのようなフィルターを正しい方法で行うにはどうすればよいですか?
vapor - 蒸気 4 流暢。複雑なクエリ、フィルター、および存在しない場合の作成
2 人のユーザーとのチャットをクエリしようとしています。あるなら返品したいです。そうでない場合は、その 2 人のユーザーとの新しいチャットを作成して返したいと思います。
コメントは、チャットが存在する場合に失敗する場所を示しています。
また、このシナリオでこれら 2 人のユーザーとの新しいチャットを作成する方法を示していただけると助かります。
単純化されたモデル:
vapor - IDプロパティ名を必要とするVapor 4の関係とモデル
アプリ (Vapor 4) 内で親子関係をセットアップしようとしていますが、達成可能ですが、モデル内で意味のないプロパティ名が使用されるという問題または少なくとも制限に遭遇しました。
Vapor 4 では、@ID プロパティに 'id' (var id: ...) という名前を付ける必要がありますが、以前のバージョンではプロパティ名は定義可能であったため、より意味のある名前になっていました。
たとえば、User テーブル: ユーザー データは Username を (主キーではなく) 一意のキーとして使用するため、User モデルは次のように定義されます。
意味があり、読みやすく、アプリ内でモデルが使用されている場所ならどこでも、開発者は Id フィールドが sysid であり、ユーザー名がユーザー名であることを認識しています。
Rule and Profile テーブルの外部キーは、ユーザー名を外部キーとして使用します (従来の理由により)。データベースとアプリを変更することは現在不可能です。
最初の実装以来、私は (フィルターと結合ではなく) リレーションシップを使用することの利点を読み、実現してきました。
Vapor 4 内でリレーションシップを使用するには、モデル定義を次のように変更する必要があります。
私のモデル定義はあまり意味がありません (ただし、機能します):
もちろん、これはコード .username を .id に変更する必要があることを意味しますが、これは自明ではありません。
Vapor 3 では、ID プロパティ名を何でも定義できました。Fluent/Vapor 4 が以前のバージョンのようにカスタム プロパティ名を許可した場合、はるかに簡単になります。
誰かがこの「問題」に遭遇したかどうか疑問に思っていましたか? または、モデルが意味のある名前を引き続き使用できるようにし、ペアレンティングが正しく機能できるようにするための回避策があります。
私はこの単純なユーザーデータを例として使用しましたが、確かに他の人は私の迷惑に苦しむ異なる/意味のある列名を使用していますか?
ガイダンス/考えをいただければ幸いです ありがとう