【问题标题】:Laravel, get the url for a controller/action from within the viewLaravel,从视图中获取控制器/动作的 url
【发布时间】:2014-04-01 09:13:49
【问题描述】:

在我看来,我不想硬编码一个 url,以防万一我改变它......有没有办法通过说我将使用这个控制器和这个动作来生成超链接 url......类似于:

<a href = 'echo ActionLink("Logout", "Authentication");'>Logout</a>

【问题讨论】:

    标签: view laravel blade


    【解决方案1】:

    我也发现了这个……

    <a href="<?php echo action('AuthenticationController@Logout'); ?>">Logout</a>
    

    【讨论】:

    • 是的,它是一个辅助函数。取决于你想要什么,你可以灵活地用逻辑更新你的视图。但是请使用刀片,它的语法非常干净,可以分离关注点。
    【解决方案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 指定路由的方式执行等效版本。

    【讨论】:

      猜你喜欢
      • 2013-12-15
      • 1970-01-01
      • 1970-01-01
      • 2012-01-04
      • 2014-12-24
      • 2018-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多