代码之家  ›  专栏  ›  技术社区  ›  Saw Thinkar Nay Htoo Lavekush Agrawal

exto.repo检查数据库中是否存在id,phoenix framework

  •  1
  • Saw Thinkar Nay Htoo Lavekush Agrawal  · 技术社区  · 7 年前
    • 如何检查数据库中是否存在ID?

      def get_user!(id), do: Repo.get!(User, id)
      
    • get_user!(id) 可用于获取用户,是否有方法检查ID是否存在?

    • 我想要像下面这样的东西,它会返回真实的。

      MyApp.Accounts.get_user!(user_id) == %MyApp.Accounts.User{id: user_id}

    2 回复  |  直到 7 年前
        1
  •  4
  •   Dennis    7 年前

    Exto v3支持 Ecto.Repo.exists?/2

    import Ecto.Query, only: [from: 2]
    
    Repo.exists?(from u in User, where: u.id == ^user_id)
    
        2
  •  3
  •   Badu    7 年前

    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