Rumah > Soal Jawab > teks badan
P粉5133162212023-08-16 16:57:09
Jawapan
Michael Coxon
adalah sempurna.
Sebagai alternatif, anda boleh mencapai hasil yang serupa dengan gabungan berbilang 逻辑运算符
.
Cuba ini:
const userMatcher = user.role === "admin" ? true : { userId: user.id }; const { data: post } = await supabase .from("posts") .select("*") .or(`userId.eq.${userMatcher}`, "id.eq." + id) .single();
Untuk pengguna admin: user.role === "admin", jadi syarat userId.eq.true sentiasa menilai kepada benar, membolehkan pengguna admin melihat semua siaran.
Untuk pengguna lain: Condition userId.eq.{userId: user.id} mengehadkan pilihan kepada hanya siaran yang userIdnya sepadan dengan ID pengguna semasa.
id.eq.${id} Memastikan siaran dengan id yang dinyatakan diambil semula.
P粉6708387352023-08-16 09:09:46
Hanya bahagikan pertanyaan. Anda tidak perlu melakukan semuanya dalam satu baris.
let query = supabase .from("posts") .select("*") .eq("id", id); if(user.role === "admin"){ query = query.eq("userId", user.id) } const { data: post } = await query.single();