Ecto.Repo 检查数据库中是否存在id,Phoenix框架
Ecto.Repo to check if id exists in the database, Phoenix framework
如何检查数据库中是否存在id?
def get_user!(id), do: Repo.get!(User, id)
get_user!(id)
可以用来获取用户,有没有办法检查id是否存在?
我想要像下面这样的东西 return 是真的。
MyApp.Accounts.get_user!(user_id) == %MyApp.Accounts.User{id: user_id}
如果没有找到记录,Repo.get!
会抛出错误。
您可能想使用 Repo.get
而不是
Repo.get(User, user_id) != nil
您还可以定义一个函数来检查给定的用户 ID 是否存在
def user_exist_by_id(user_id)do
#select just id to reduce payload
query = (from u in User, where: u.id == ^user_id, select: %{id: u.id})
found = Repo.one(query)
#if not result, found will be nil
found != nil
end
Ecto v3 通过 Ecto.Repo.exists?/2
支持此功能
import Ecto.Query, only: [from: 2]
Repo.exists?(from u in User, where: u.id == ^user_id)
如何检查数据库中是否存在id?
def get_user!(id), do: Repo.get!(User, id)
get_user!(id)
可以用来获取用户,有没有办法检查id是否存在?我想要像下面这样的东西 return 是真的。
MyApp.Accounts.get_user!(user_id) == %MyApp.Accounts.User{id: user_id}
Repo.get!
会抛出错误。
您可能想使用 Repo.get
而不是
Repo.get(User, user_id) != nil
您还可以定义一个函数来检查给定的用户 ID 是否存在
def user_exist_by_id(user_id)do
#select just id to reduce payload
query = (from u in User, where: u.id == ^user_id, select: %{id: u.id})
found = Repo.one(query)
#if not result, found will be nil
found != nil
end
Ecto v3 通过 Ecto.Repo.exists?/2
import Ecto.Query, only: [from: 2]
Repo.exists?(from u in User, where: u.id == ^user_id)