changeset = User.changeset(%User{}, %{email: “test@test.html”, password: “123456”})
user = User |> Repo.get_by(email: “admin@test.html”)
How to set changeset.data use user.
My english is very bad. Please forgive me.
changeset = User.changeset(%User{}, %{email: “test@test.html”, password: “123456”})
user = User |> Repo.get_by(email: “admin@test.html”)
How to set changeset.data use user.
My english is very bad. Please forgive me.
I assume you want to:
In such case you should do more or less (untested code):
user = User |> Repo.get_by(email: "admin@test.html")
changeset = User.changeset(user, %{email: "test@test.html", password: "123456"})
Repo.update!(changeset)
Thank you for the comment.
I want this:
def load_user(%Changeset{valid?: true} = changeset, field) do
account = get_field(changeset, field)
user = cond do
String.match?(account, @regex_email) ->
__MODULE__ |> Repo.get_by(email: account)
String.match?(account, @regex_mobile) ->
__MODULE__ |> Repo.get_by(mobile: account)
true ->
__MODULE__ |> Repo.get_by(username: account)
end
cond do
user ->
IO.inspect user
%{changeset | data: user}
true -> changeset |> add_error(field, "no user")
end
end
But changeset.data is empty
at which point the changeset.data is empty?
It’s my fault. In shell it show emtpy.
I inspect changeset.data, has data.
Thank you verify much.
Now, It’s work.