【问题标题】:include based on route Laravel包括基于路线 Laravel
【发布时间】:2014-02-08 20:09:37
【问题描述】:

如何根据 Laravel 的刀片使用哪个路由“类别”包含文件?我基本上是在我的视图模板的子导航部分尝试这样做:

app/views/layouts/default.blade.php

@if (Route::resource() == 'tasks')
    @include('navs.task')
@elseif (Route::resource() == 'projs')
    @include('navs.proj')
@elseif (Route::resource() == 'miscs')
    @include('navs.misc')
@else 
    @include('navs.info')
@endif

但这会引发错误“未定义的类常量'资源'”

【问题讨论】:

    标签: laravel-4 blade


    【解决方案1】:

    你在寻找 Route::currentRouteName()。

    @if (Route::currentRouteName() == 'tasks')
        @include('navs.task')
    @elseif (Route::currentRouteName() == 'proj')
        @include('navs.proj')
    @elseif (Route::currentRouteName() == 'misc')
        @include('navs.misc')
    @else 
        @include('navs.info')
    @endif
    

    【讨论】:

      【解决方案2】:

      很晚,但我认为使用 Request::is 是一种更简单的方法。

      @if (Route::is('tasks'))
         @include('navs.task')
      @elseif (Route::is('projs'))
         @include('nav.proj')
      @elseif (Route::is('miscs'))
          @include('nav.misc')
      @else 
          @include('nav.info')
      @endif
      

      这也是很多 if else 使用 Switch 的案例。

      【讨论】:

        【解决方案3】:

        Michael P:你的回答让我得到了正确的答案。 Route::currentRouteName() 返回过于精细的“task.index”或“proj.create”。 Route::current()->getUri() 有效。

        @if (Route::current()->getUri() == 'tasks')
            @include('nav.task')
        @elseif (Route::current()->getUri() == 'projs')
            @include('nav.proj')
        @elseif (Route::current()->getUri() == 'miscs')
            @include('nav.misc')
        @else 
            @include('nav.info')
        @endif
        

        【讨论】:

          猜你喜欢
          • 2017-04-30
          • 1970-01-01
          • 2011-11-16
          • 2018-12-07
          • 1970-01-01
          • 2014-08-03
          • 2013-06-01
          • 2020-03-07
          • 1970-01-01
          相关资源
          最近更新 更多