Supabase - 無限値と同等
P粉741223880
P粉741223880 2023-08-15 18:53:11
0
2
438
<p>認証フローでは、ミドルウェアで、<code>.eq</code> ステートメント内の任意の値と一致させたいと考えています。一般ユーザーは自分が作成した投稿のみを閲覧できます。管理者はすべての投稿を閲覧できます。 </p> <pre class="brush:js;toolbar:false;">const userMatcher = user.role === "admin" ? "*" : user.id; const { data: post } = スーパーベースを待ちます .from("投稿") 。選択する("*") .eq("id", id) .eq("userId", userMatcher) 。シングル(); </pre> <p>「*」の一致はここでは効果がありません。可能であれば、このコードをクリーンな状態に保ち、管理ケースのクエリ (ユーザー マッチャーを除く) を複製しないようにしたいと考えています。 </p> <p>可能であれば、最もクリーンな方法は何ですか? </p>
P粉741223880
P粉741223880

全員に返信(2)
P粉513316221

マイケル・コクソンの答えは完璧です。

また、複数の 論理演算子を組み合わせて同様の結果を得ることができます。

###### これを試して: ###### リーリー

管理者ユーザーの場合: user.role === "admin" であるため、条件

userId.eq.true

は常に true と評価され、管理者ユーザーはすべての投稿を表示できます。 他のユーザーの場合: Conditions

userId.eq.{userId: user.id}

userId が現在のユーザー ID と一致する投稿のみに選択を制限します。 id.eq.${id} 指定された ID の投稿が取得されることを確認します。

いいねを押す +0
P粉670838735

クエリを分割するだけです。すべてを 1 行で行う必要はありません。

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!