Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 从控制器名称获取路径帮助程序_Elixir_Phoenix Framework - Fatal编程技术网

Elixir 从控制器名称获取路径帮助程序

Elixir 从控制器名称获取路径帮助程序,elixir,phoenix-framework,Elixir,Phoenix Framework,在Routes文档中。我读到我们可以得到这样的路径: iex> import HelloWeb.Router.Helpers iex> alias HelloWeb.Endpoint iex> user_path(Endpoint, :index) "/users" 我们有没有办法像这样从控制器user获取canuser\u路径 user_path 谢谢这不是公共API,将来可能会更改,但是MyApp.Router.\uu路由\uu\u0可用

在Routes文档中。我读到我们可以得到这样的路径:

  iex> import HelloWeb.Router.Helpers
  iex> alias HelloWeb.Endpoint
  iex> user_path(Endpoint, :index)
       "/users"
我们有没有办法像这样从控制器
user
获取can
user\u路径

   user_path

谢谢

这不是公共API,将来可能会更改,但是
MyApp.Router.\uu路由\uu\u0
可用于获取所有路由。从中,您可以按控制器进行筛选,并获取指向该控制器的所有路由

我的应用程序中有一个标准的
resources”/posts“,PostController
。下面是该应用程序的一些
iex-s混合输出:

iex(1)> MyApp.Router.__routes__ |> hd
%Phoenix.Router.Route{
  assigns: %{},
  helper: "page",
  host: nil,
  kind: :match,
  opts: :index,
  path: "/",
  pipe_through: [:browser],
  plug: MyApp.PageController,
  private: %{},
  verb: :get
}
iex(2)> for route <- MyApp.Router.__routes__,
...(2)>     route.plug == MyApp.PostController,
...(2)>   do: route.helper
["post", "post", "post", "post", "post", "post", nil, "post"]
iex(1)>MyApp.Router.\uuuuuuuuuuuuu124;>hd
%凤凰路线{
分配:%{},
助手:“页面”,
主持人:无,,
种类:匹配,
选项::索引,
路径:“/”,
管道通过:[:浏览器],
插件:MyApp.PageController,
私有:%{},
动词::get
}
iex(2)>对于route.plug==MyApp.PostController,
…(2)>do:route.helper
[“post”、“post”、“post”、“post”、“post”、“post”、“nil”、“post”]

谢谢您的帮助。