สร้างคลาสที่ใช้งานสำหรับผู้ปกครองและกลุ่มย่อยใน Laravel

ฉันมีเมนูดังนี้:

<li class="treeview">
        <a href="/th#"><i class="fa fa-comment"></i> <span>Comments</span>
            <span class="pull-right-container">
                <i class="fa fa-angle-left pull-right"></i>
            </span>
        </a>
        <ul class="treeview-menu">
            <li><a href="http://blog.dev/member/comments">All Comments</a></li>
            <li><a href="http://blog.dev/member/comments?q=me">My Comments</a></li>
            <li><a href="http://blog.dev/member/comments?q=approved">Approved</a></li>
            <li><a href="http://blog.dev/member/comments?q=disapproved">Disapproved</a></li>
        </ul>
    </li>

ทั้งหมดที่ฉันต้องการคือเมื่อฉันคลิกที่เมนูย่อยเช่นเมนู "ความคิดเห็นของฉัน" เมนูความคิดเห็นและความคิดเห็นของฉันที่ใช้งานอยู่จะมีคลาสเช่นนี้

    <li class="active"><a href="/th#"><i class="fa fa-comment"></i> <span>Comments</span></a></li>
    <li class="active active-sub"><a href="http://blog.dev/member/comments?q=me">My Comments</a></li>

แล้วฉันจะทำให้สิ่งนี้เกิดขึ้นได้อย่างไร? ขอบคุณ


person Ying    schedule 29.11.2017    source แหล่งที่มา


คำตอบ (4)


ลองสิ่งนี้:

<li class="treeview {{ (request()->is('member/comments')) ? 'active':''  }}">
    <a href="/th#"><i class="fa fa-comment"></i> <span>Comments</span>
        <span class="pull-right-container">
            <i class="fa fa-angle-left pull-right"></i>
        </span>
    </a>
    <ul class="treeview-menu">
        <li class="{{ (request()->is('member/comments') && (request('q') == '')) ? 'active active-sub':''  }}">
            <a href="http://blog.dev/member/comments">All Comments</a>
        </li>
        <li class="{{ (request('q') == 'me') ? 'active active-sub':''  }}">
            <a href="http://blog.dev/member/comments?q=me">My Comments</a>
        </li>
        <li class="{{ (request('q') == 'approved') ? 'active active-sub':''  }}">
            <a href="http://blog.dev/member/comments?q=approved">Approved</a>
        </li>
        <li class="{{ (request('q') == 'disapproved') ? 'active active-sub':''  }}">
            <a href="http://blog.dev/member/comments?q=disapproved">Disapproved</a>
        </li>
    </ul>
</li>
person Rimon Khan    schedule 30.11.2017

คุณสามารถใช้วิธี is() กับวัตถุ Request ซึ่งยอมรับรูปแบบเพื่อตรวจสอบ ตัวอย่างเช่น <li class="{{ request()->is('comments*') ? 'active' : '' }}"> หมายความว่าหากมีคำ 'ความคิดเห็น' อยู่ใน uri คลาส 'active' จะถูกเพิ่มเข้าไป แน่นอนคุณสามารถระบุให้เฉพาะเจาะจงมากขึ้น และคุณสามารถละเว้นไวด์การ์ดได้

person Jendrusha    schedule 29.11.2017

ใช้เป็นวิธีร่วมกับ if clause;

{{Request::is('sample-url') ? 'class="active"' : ''}}

(ตรวจสอบ url หากมี 'sample-url' ใน url ให้ return class="active" แต่จะไม่ return ว่างเปล่า.. )

person Community    schedule 30.11.2017
comment
คุณสามารถแชร์ภาพหน้าจอในไฟล์เบลดของคุณได้หรือไม่? - person ; 30.11.2017

คุณอาจลองใช้แพ็คเกจนี้ https://www.hieule.info/products/laravel-active-version-3-released มีวิธีการช่วยเหลือในการตรวจสอบว่าเส้นทางปัจจุบันตรงกับสภาพของคุณหรือไม่

สมมติว่าเส้นทางของคุณชื่อ comments.index, comments.my_comments ฯลฯ

<li class="{{ active_class(if_route('comments.*')) }}">
     <a href="/th#"><i class="fa fa-comment"></i> 
     <span>Comments</span></a>
</li>
person Paul Santos    schedule 30.11.2017