如何通过 Phoenix 框架 link 到带有参数的控制器
How to link to controller with parameters by Phoenix framework
我在凤凰有以下路线。
page_path GET /next/:id SampleServerWeb.SampleController :next
我想发送上一页的参数 ID。
我不知道如何编写 link 辅助标记。
我试过跟随,但是它不起作用。
<%= link "NEXT", to: page_path(@conn, :next, id: 40) %>
请多多指教。
谢谢
终于成功了!!
<%= link "NEXT", to: Routes.page_path(@conn, :next, id: 40) %>
我应该放 Routes
.
路由器路径
Phoenix 为每个 Phoenix.Router
.
生成一个路径助手模块
路径可以用Router Helpers生成。
视图中的助手可用性
如果您使用 mix phx.new
创建项目,YourApp.Router.Helpers
将作为 Routes
导入到您的所有视图中。 (https://github.com/phoenixframework/phoenix/blob/2c91dc9/installer/templates/phx_single/lib/app_name_web.ex#L88)
可用路径/URL 函数
命令 mix phx.routes
显示您路由器的所有当前可用路由。
找出创建路径所需的参数/url,详情可参见iex
。
$ iex -S mix
Erlang/OTP 22 [erts-10.4] [source] [64-bit] [smp:6:6] [ds:6:6:10] [async-threads:1] [hipe]
Interactive Elixir (1.10.1) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> h YourApp.Router.example_path
def example_path(conn_or_endpoint, action)
def example_path(conn_or_endpoint, action, params)
def example_path(conn_or_endpoint, action, id, params)
iex(2)>
你的情况下的 TODO
<%= link "NEXT", to: Routes.page_path(@conn, :next, id: 40) %> or
<%= link "NEXT", to: Routes.page_path(@conn, :next, 40) %>
我在凤凰有以下路线。
page_path GET /next/:id SampleServerWeb.SampleController :next
我想发送上一页的参数 ID。 我不知道如何编写 link 辅助标记。
我试过跟随,但是它不起作用。
<%= link "NEXT", to: page_path(@conn, :next, id: 40) %>
请多多指教。 谢谢
终于成功了!!
<%= link "NEXT", to: Routes.page_path(@conn, :next, id: 40) %>
我应该放 Routes
.
路由器路径
Phoenix 为每个 Phoenix.Router
.
路径可以用Router Helpers生成。
视图中的助手可用性
如果您使用 mix phx.new
创建项目,YourApp.Router.Helpers
将作为 Routes
导入到您的所有视图中。 (https://github.com/phoenixframework/phoenix/blob/2c91dc9/installer/templates/phx_single/lib/app_name_web.ex#L88)
可用路径/URL 函数
命令 mix phx.routes
显示您路由器的所有当前可用路由。
找出创建路径所需的参数/url,详情可参见iex
。
$ iex -S mix
Erlang/OTP 22 [erts-10.4] [source] [64-bit] [smp:6:6] [ds:6:6:10] [async-threads:1] [hipe]
Interactive Elixir (1.10.1) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> h YourApp.Router.example_path
def example_path(conn_or_endpoint, action)
def example_path(conn_or_endpoint, action, params)
def example_path(conn_or_endpoint, action, id, params)
iex(2)>
你的情况下的 TODO
<%= link "NEXT", to: Routes.page_path(@conn, :next, id: 40) %> or
<%= link "NEXT", to: Routes.page_path(@conn, :next, 40) %>