اذهب إلى المحتوى

السؤال

نشر

قمت بعمل شريط تنقل navbar وأربد أن أضيف الصنف active على الرابط الخاص بالصفحة الحالية:

<li class="{{-- أريد إضافة الصنف active هنا إذا كان عنوان الصفحة هو /posts --}}">
  <a href="{{ url('posts.index') }}" >
    {{ $config->website_name }}
  </a>
</li>

كيف يمكنني معرفة الرابط الذي زاره المستخدم لأقوم بالتحقق مما إذا كان هو posts/ أم لا، بحيث أقوم بعمل شرط لإضافة الصنف active في لارافيل؟

Recommended Posts

  • 1
نشر (معدل)

أهلا أخى .

إذا كنت تستخدم أسماء الروابط مثل .

Route::get('/posts', ...)->name('posts');

فهنا قد أعطينا هذا الرابط اسم posts

وإذا كنا نريد أن نعرف إذا كنا في الرابط الخاص ب posts ام لا لوضع class active نستخدم الكود التالى

<li class="{{Route::is('posts') ? 'active' : ''}}">
  <a href="{{ url('posts.index') }}" >
    {{ $config->website_name }}
  </a>
</li>

وإذا لم نضع للروابط أسماء يمكن استخدام الكود التالى 

<li class="{{Request::url() === 'YOUR DOMAIN/posts' ? 'active' : ''}}">
  <a href="{{ url('posts.index') }}" >
    {{ $config->website_name }}
  </a>
</li>

 

تم التعديل في بواسطة محمد عاطف11
  • 1
نشر

يمكنك أن تستعمل التابع request()->is على النحو التالي:

<li class="{{ request()->is('posts') ? 'active' : '' }}">
  <a href="{{ url('posts.index') }}" >
    {{ $config->website_name }}
  </a>
</li>

بهذا الشكل سوف يتم إضافة الصنف active إذا قمت بزيارة الصفحة posts/

أيضًا إن كنت تستعمل named routes فيمكنك أن تستعمل التابع routeIs الذي يوفره الكائن Request على النحو التالي:

<li class="{{ Request::routeIs('posts.index') ? 'active' : '' }}">
  <a href="{{ url('posts.index') }}" >
    {{ $config->website_name }}
  </a>
</li>

وإن أردت أن تقوم بإضافة الصنف active لكل الصفحات الفرعية من posts/ فيمكنك أن تستعمل ما يسمى بـ wildcards وتُضيف نجمة إلى نهاية الاسم:

<li class="{{ request()->is('posts/*') ? 'active' : '' }}">
  <a href="{{ url('posts.index') }}" >
    {{ $config->website_name }}
  </a>
</li>

// أو 
<li class="{{ Request::routeIs('posts.*') ? 'active' : '' }}">
  <a href="{{ url('posts.index') }}" >
    {{ $config->website_name }}
  </a>
</li>

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...