Laravel — динамическая загрузка содержимого в области с вкладками

#php #laravel #bootstrap-4 #laravel-8

#php #laravel #bootstrap-4 #laravel-8

Вопрос:

Я считаю, что у меня правильная структура всего. Но ссылки на вкладки (которые являются правильными) на странице не заставляют страницу обновляться? Изменение URI и изменение параметра тега приведет к загрузке страницы, так что это работает? Но ссылки не работают? Кроме того, это лучший способ сделать это?

Маршруты (web.php )

 Route::get('/admin/site', [SiteController::class, 'index'])
    ->name('admin.adminSiteDash');

Route::get('/admin/site/{tab?}', [SiteController::class, 'show'])
    ->name('admin.adminSiteDash.Tab');
 

Контроллер сайта

 public function index() {
   return redirect(route('admin.adminSiteDash.Tab', 'tab1'));
}

public function show($tab = null) {

    if (is_null($tab)) { 
      $tab = 'tab1';
    }
  
    return view('admin.adminSiteDash', [
        'regions' => Region::all(),
        'tab' => $tab
    ]);
}
 

Просмотр (с именем admin.adminSiteDash)

 <ul class="nav nav-tabs" id="myTab" role="tablist">
    <a href="tab1" id="home-tab" data-toggle="tab" class="nav-link @if($tab === 'tab1') active @endif">Tab 1</a>
    <a href="tab2" id="home-tab" data-toggle="tab" class="nav-link @if($tab === 'tab2') active @endif">Tab 2</a>
    <a href="tab3" id="home-tab" data-toggle="tab" class="nav-link @if($tab === 'tab3') active @endif">Tab 3</a>
    <a href="tab4" id="home-tab" data-toggle="tab" class="nav-link @if($tab === 'tab4') active @endif">Tab 4</a>
</ul>

<div class="tab-content" id="myTabContent">
  <div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">...</div>
  <div class="tab-pane fade" id="profile" role="tabpanel" aria-labelledby="profile-tab">...</div>
  @include('admin.site.prop_' . $tab)
</div>
 

Ответ №1:

Мне нужно было удалить часть Jquery на вкладках, поскольку на самом деле они просто элементы..

Удаление data-toggle="tab" из ahrefs привело к поведению, которое я искал!