如何通过 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) %>