1 回答
TA贡献1806条经验 获得超8个赞
您通常会以使用相同布局的方式实现此功能,然后通过 URL -> 控制器 ->刀片包含参数-> 刀片视图传递不同的参数。
下面的示例演示了如何在 Laravel 中跨文件执行“延迟”加载(同时仅加载 1 个选项卡):
// /routes/web.php
Route::get('/tabbed-page', 'TabbedPageController@index');
Route::get('/tabbed-page/:tab', 'TabbedPageController@show');
// /App/Http/Controllers/TabbedPageController.php
public function show($request, $tab) {
$data = ['title'=> 'No tab'];
if ($tab === 'tab1') {
$data = ['title' => 'I am tab 1'];
}
return view('page', [
'tab' => $tab,
'data'=> $data
]);
}
public function index($request) {
// open tab1 by default
redirect('/tabbed-page/tab1');
}
{{-- /resources/views/page.php, requested at for example /tabbed-page/tab1 --}}
<nav>
<a href="tab1" class="@if($tab === 'tab1') active @endif">Tab 1</a>
<a href="tab2" class="@if($tab === 'tab2') active @endif">Tab 2</a>
<a href="tab3" class="@if($tab === 'tab3') active @endif">Tab 3</a>
<a href="tab4" class="@if($tab === 'tab4') active @endif">Tab 4</a>
</nav>
<main>
@include($tab, $data)
</main>
{{-- /resources/views/tab1.php, tab2.php, tab3.php, etc.. --}}
<div id="tab1">
<h1>{{ $data['title] }}</h1>
Content ....
</div>
- 1 回答
- 0 关注
- 89 浏览
添加回答
举报