Запрос::is () работает только на родительском маршруте. Как использовать это на дочернем маршруте?

#laravel #laravel-7

#laravel #laravel-7

Вопрос:

я пытался использовать Request::is() для печати некоторого класса начальной загрузки, но, к сожалению, работает только на родительском маршруте ‘user’, но когда я использую в их дочернем не работающем ‘user / create’

Вот мой код

 <ul class="dropdown-menu">
     <li class="{{ Request::is('posts') ? 'active' : '' }}"><a class="nav-link" href="/posts">Posts</a></li>
     <li class="{{ Request::is('posts/create') ? 'active' : '' }}"><a class="nav-link" href="/posts/create">Create New</a></li>
</ul>
  

Комментарии:

1. добро пожаловать в stackoverflow, можете ли вы указать больше о not working написанном

2. когда URL-адрес ‘posts / create’, класс еще не активен, поэтому я думаю, что проблема в моем коде «Request::is()» @bhucho

Ответ №1:

вы можете попробовать использовать (*) для любых маршрутов до или после URL :

 <ul class="dropdown-menu">
     //post/sub_url
     <li class="{{ Request::is('posts/*') ? 'active' : '' }}"><a class="nav-link" href="/posts">Posts</a></li>
     //match url
     <li class="{{ Request::is('posts/create') ? 'active' : '' }}"><a class="nav-link" href="/posts/create">Create New</a></li>
     //match any sub_url with any prefix
     <li class="{{ Request::is('*/posts/create/*') ? 'active' : '' }}"><a class="nav-link" href="/posts/create">Create New</a></li>
</ul>
  

Ответ №2:

Попробуйте это Request::segment(1) для родительского, потому что для дочернего также segment(1) будет post или я предпочитаю вставлять in_array() , поэтому мне нужно, чтобы я мог добавить больше маршрута к родительскому active

 <ul class="dropdown-menu">
    <li class="{{ in_array(Request::segment(1),['post']) ? 'active' : '' }}"><a class="nav-link" href="/posts">Posts</a></li>
    <li class="{{ in_array(Request::segment(1),['post']) ? 'active' : '' }}"><a class="nav-link" href="/posts/create">Create New</a></li>
</ul>
  

Комментарии:

1. работает только на родительском маршруте, дочерний по-прежнему не меняется на активный

2. @CaturBagas попробуйте сейчас