为简单起见,假设我有一个包含ul和4 div的视图
<ul>
<li>Section 1</li>
<li>Section 2</li>
<li>Section 3</li>
<li>Section 3</li>
<ul>
<div class='1'></div>
<div class='2'></div>
<div class='3'></div>
<div class='4'></div>
是否可以做到这一点,以便用户根据URL只能看到四个div之一?例如:
在URL www.example.com/first上,用户收到一个包含以下内容的视图:
<ul>
<li>Section 1</li>
<li>Section 2</li>
<li>Section 3</li>
<li>Section 3</li>
<ul>
<div class='1'></div>
在URL www.example.com/second上,用户收到一个包含以下内容的视图:
<ul>
<li>Section 1</li>
<li>Section 2</li>
<li>Section 3</li>
<li>Section 3</li>
<ul>
<div class='2'></div>
在URL www.example.com/third上,用户收到一个包含以下内容的视图:
<ul>
<li>Section 1</li>
<li>Section 2</li>
<li>Section 3</li>
<li>Section 3</li>
<ul>
<div class='3'></div>
如果我有4个不同的视图,我可以轻松地做到这一点,但是我的目标是将所有代码放在1个视图中,然后基于URL呈现正确的部分。
答案 0 :(得分:1)
您可以轻松地使用请求对象进行检查,并检查当前句段。
例如:
@if(request()->is('first'))
<div class="1"></div>
@elseif(request()->is('second'))
<div class="2"></div>
@endif
这应该给你这个主意。
答案 1 :(得分:0)
4个不同的视图将是一个好主意,每个视图可以具有不同的html,如果您使用Blade,否则html代码将很混乱。使1个主刀片在其中添加您的ul代码
master.blade.php
<ul>
<li>Section 1</li>
<li>Section 2</li>
<li>Section 3</li>
<li>Section 3</li>
<ul>
@yeild('content')
使用此主版式扩展每个视图。
first.blade.php
@extends('master')
@section('content')
<div class='1'></div>
@endsection
以此类推
如果所有请求都将转到同一控制器方法,而不是像这样调用它们
return view($slug);
这是laravel刀片模板的美
答案 2 :(得分:0)
您可以尝试使用此代码。
@if(last(request()->segments()) == 'first')
<div class='1'></div>
@endif
@if(last(request()->segments()) == 'second')
<div class='2'></div>
@endif