凤凰1.3闪不出现
问题描述:
我的put_flash(conn)
和get_flash(conn)
方法行为奇怪;当我使用重定向一切工作正常,但没有显示出来,当我尝试在控制器后面添加flash_msg
。凤凰1.3闪不出现
看起来消息存储在:phoenix_flash
而不是:plug_session
;有什么想法吗?
def index(conn, _params) do
conn
|> put_flash(:info, "Welcome : info")
|> put_flash(:error, "Welcome : error")
render conn, "index.html"
end
private: %{EverlearnWeb.Router => {[], %{}},
:phoenix_action => :index,
:phoenix_controller => EverlearnWeb.PageController,
:phoenix_endpoint => EverlearnWeb.Endpoint,
:phoenix_flash => %{"error" => "Welcome : error", "info" => "Welcome : info"},
:phoenix_layout => {EverlearnWeb.LayoutView, :app},
:phoenix_pipelines => [:browser], :phoenix_router => EverlearnWeb.Router,
:phoenix_view => EverlearnWeb.PageView,
:plug_session => %{"_csrf_token" => "xxx",
"phoenix_flash" => %{"info" => "Welcome back Thibaut, your are signed in !"},
"user_id" => 1}, :plug_session_fetch => :done}
答
你需要管你conn
,你把你的提示信息为render
功能:
conn
|> put_flash(:info, "Welcome : info")
|> put_flash(:error, "Welcome : error")
|> render("index.html")
在你的方法,你添加的提示信息到conn
,但在render
您使用非更新了已传递给您的操作的一个。
其他的办法是分配给conn
如果你想正确地传递数据render
:
conn =
conn
|> put_flash(:info, "Welcome : info")
|> put_flash(:error, "Welcome : error")
render conn, "index.html"
谢谢!我怎么会错过它... 只是为了获得信息,为什么然后它出现在private.phoenix_flash? – Thib
很不幸,很抱歉,我无法评论实施细节... –