在我看来,我不想硬编码一个网址只是因为我改变它...有没有办法生成超链接网址,说我要使用这个控制器和这个动作...类似的东西:
<a href = 'echo ActionLink("Logout", "Authentication");'>Logout</a>
答案 0 :(得分:2)
我也刚刚发现了......
<a href="<?php echo action('AuthenticationController@Logout'); ?>">Logout</a>
答案 1 :(得分:2)
您需要做的是能够以某种方式参考您的路线。执行此操作有两种主要方法:命名它们并引用控制器操作(即Controller@action
)。
然而,最好和最灵活的是命名您的路线。这意味着如果您重构控制器(例如更改类名或命名空间),则必须更改较少的代码(仅限于路径指向的位置,而不是每个视图引用的位置)。
无论你采用哪种方式,你都可以使用各种助手来获得你想要的东西。以下都是等效的:
{{ link_to_route('route.name', 'Title) }}
{{ HTML::linkRoute('route.name', 'Title') }}
<a href="{{{ route('route.name') }}}">Title</a>
<a href="{{{ URL::route('route.name') }}}">Title</a>
同样,您可以使用'action'代替这些助手中的'route',使用Controller@action
指定路径的方式来执行等效版本。