2014-04-13 9 views
5

मेरे मास्टर.ब्लैड.एफ़.पी.पी. फ़ाइल में मेरे पास एक नेविगेशन है जो मैं एक साथ रखने की कोशिश कर रहा हूं।लार्वेल में सक्रिय लिंक 4

<nav class="navbar navbar-default" role="navigation"> 
    <div class="container-fluid"> 
    <div class="col-sm-5"> 
    <ul class="nav navbar-nav" > 
     <li class="{{ Route::current('home.index') ? 'active' : '' }}">{{ HTML::linkAction('[email protected]', 'Home') }} 
     <li><a href="">Locations</a></li> 
     <li class="{{ Route::current('order.index') ? 'active' : '' }}">{{ HTML::linkAction('[email protected]', 'Order Online') }} 
    </ul> 
    </div> 
    <div class="col-sm-5 navbar-right"> 
    <ul class="nav navbar-nav navbar-right"> 
     <li class="{{ Route::current('menu.index') ? 'active' : '' }}">{{ HTML::linkAction('[email protected]', 'Menu') }} 
     <li><a href="">About</a></li> 
     <li><a href="">Contact Us</a></li> 
    </ul> 
    </div> 
    <div class="container-fluid"> 
</nav> 

समस्या यहां उन सभी को सक्रिय करने के लिए ली सेट है कि है। वर्तमान पृष्ठ नहीं है। मैं क्या गलत कर रहा हूं?

उत्तर

0

लिननाइस और जेरेक Tkaczyk दोनों के सही जवाब हैं। लेकिन यहां के आसपास का काम
फ़ाइल या कक्षा बनाते हैं। यदि कक्षा का उपयोग कर आप जो भी चाहें नाम के साथ स्थिर कार्य बना सकते हैं। और composer.json में फ़ाइल नाम या वर्ग फ़ोल्डर जोड़ें।

 
... 
"autoload": { 
    "classmap": [ 
     ... , 
     'app/helpers' 
    ], 
    "files": [ 
     "app/helpers.php" 
    ] 
} 

यहाँ, एप्लिकेशन/सहायकों कि बाद में सहायक वर्ग के रूप में इस्तेमाल किया जा सकता कक्षाओं वाले फ़ोल्डर है, और एप्लिकेशन/helpers.php तरीकों के साथ सादे PHP फ़ाइल है। 'ऐप/हेल्पर्स' और "फ़ाइलें" से पहले उन अल्पविरामों को देखें। इस तरह एक वर्ग बनाएँ।

namespace App\Helper; 
class Helper{ 
    public static function set_active($route){ 
     return (\Request::is($route.'/*') || \Request::is($route)) ? "active" : ''; 
    } 
} 

अब यह फोन जब भी आप विचारों

<ul class="nav navbar-nav"> 
    <li class="dropdown {{ \App\Helper\Helper::set_active('/') }}"> {{ HTML::decode(HTML::link('/','<i class="fa fa-home"></i> Home ', array('class' => 'dropdown-toggle'))) }} </li> 
    <li class="dropdown {{ \App\Helper\Helper::set_active('admins') }}"> {{ HTML::decode(HTML::link('/admins','<i class="fa fa-user"></i> Admins ', array('class' => 'dropdown-toggle'))) }} </li>     
</ul> 

या

<li class="{{\App\Helper\Helper::set_active('/')}}">Home</li> 
<li class="{{\App\Helper\Helper::set_active('admins')}}">Admins</li> 

मुबारक कोडिंग से इस तरह चाहते हैं। :)

10

यह टुकड़ा रिटर्न

Route::currentRouteName() == 'home.index' 

को

Route::current('home.index') 

परिवर्तन आपत्ति यह और मैं इसके बारे में एक सहायक समारोह करने का सुझाव, कुछ इस तरह लग रही: के लिए

function setActive($route, $class = 'active') 
{ 
    return (Route::currentRouteName() == $route) ? $class : ''; 
} 

क्रेडिट्स http://laracasts.com

पर जेफरी से ऊपर

आप एप्लिकेशन/helpers.php में उदाहरण के लिए अपने सहायकों जगह कर सकते हैं, तो आप इतना

... 
"autoload": { 
    "classmap": [ 
     ... 
    ], 
    "files": [ 
     "app/helpers.php" 
    ] 
} 
+2

हम्म, मैं लार्वेल के लिए नया हूं - मैं एक सहायक समारोह कहां रखूं? क्या आप मुझे अपने वीडियो से जोड़ सकते हैं? हालांकि महान जवाब! –

+3

https://laracasts.com/lessons/active-states मुझे यकीन नहीं है कि यह मुफ़्त है, लेकिन लार्कास्ट कुछ $ खर्च करने लायक है। और आपके हेल्पर्स फ़ंक्शन कहीं भी आपको पसंद करते हैं, एक सेक –

+1

मीट में मेरा संपादन चबाते हैं, हां, बहुत बुरा वह सदस्यता के रूप में पेपैल स्वीकार नहीं करता है। Ive समर्थन ईमेल किया। मैंने composer.json संपादित किया और संगीतकार चलाया लेकिन मुझे एक त्रुटि मिली: http://cl.ly/image/3q3g3m2M0s0a - यह मेरी संगीतकार फ़ाइल है, और यह त्रुटि है: http://cl.ly/image/3O0w1G253y3R –

18

तरह /composer.json में autoload में जोड़ने के लिए या बस एक त्रिगुट आपरेशन का उपयोग की जरूरत है:

<li {{ (Request::is('*login') ? 'class="active"' : '') }}>Login</li> 
+0

क्लीनर समाधान। चीयर्स! –

संबंधित मुद्दे