লারাভেল 4-তে কীভাবে বর্তমান ইউআরএল @if স্টেটমেন্ট (ব্লেড) এর মধ্যে পাবেন?


269

আমি লারাভেল ৪ ব্যবহার করছি I আমি @ifলারাভেলের ব্লেড টেম্প্লেটিং ইঞ্জিনটি ব্যবহারের দৃষ্টিতে একটি শর্তের মধ্যে বর্তমান ইউআরএল অ্যাক্সেস করতে চাই তবে এটি কীভাবে করব তা আমি জানি না।

আমি জানি যে এটির মতো ব্যবহার করে এটি করা যেতে পারে <?php echo URL::current(); ?>তবে @ifফলক বিবৃতিতে এটি সম্ভব নয় ।

কোনও পরামর্শ?


নীচে কোন উত্তর আপনার সমস্যা সাহায্য করেছে?
N69S

উত্তর:


358

আপনি ব্যবহার করতে পারেন: Request::url()বর্তমান ইউআরএলটি পেতে, এখানে একটি উদাহরণ রয়েছে:

@if(Request::url() === 'your url here')
    // code
@endif

ইউআরএল কোনও প্যাটার্নের সাথে মেলে কিনা তা খুঁজে পাওয়ার জন্য লারাভেল একটি পদ্ধতি সরবরাহ করে

if (Request::is('admin/*'))
{
    // code
}

বিভিন্ন অনুরোধের তথ্য পেতে সম্পর্কিত ডকুমেন্টেশন চেক করুন: http://laravel.com/docs/requests#request-


2
<লি {{(অনুরোধ :: is ('অ্যাডমিন / ড্যাশবোর্ড')? 'শ্রেণি = "সক্রিয়" ":' ')}}> আমি চেষ্টা করেছিলাম, ব্যর্থ: এক্স
ট্রান্সফর্মবাইনারি

4
আমার ক্ষেত্রে আমি ইউআরএলটির জন্য একটি শুরু / ব্যবহার করছি, এটি সরিয়ে
ফেললে

@ আন্ড্রেইকো যদি আমার হোম পেজ ব্যতীত অন্য সমস্ত পৃষ্ঠায় ব্যানার লাগানোর দরকার হয় তবে এটি কাজ না করে চেষ্টা করুন@if(Request::url()!=='/') <div class="bannerImage">{{ HTML::image('images/fullimage3.jpg') }}</div> @endif
ইউসেফ আলতাফ

4
আমি এটির জন্য পরবর্তী ফর্ম্যাটটি ব্যবহার করি: <li {!! (অনুরোধ :: url () == ইউআরএল ('/'))? 'শ্রেণি = "সক্রিয়" ":' '!!}>, কারণ the {কিছু_কোড} with সহ ফর্ম্যাটটি স্ট্রিং এনকোডিং ব্যবহার করে।
ভিক্টর

3
url() এখন একটি বিল্ডার উদাহরণ দেয় । অবশ্যই ব্যবহার করতে হবেurl()->current()
জেফ পেকেট

92

আপনি Route::current()->getName()নিজের রুটের নাম পরীক্ষা করতেও ব্যবহার করতে পারেন ।

উদাহরণ :ways.php

Route::get('test', ['as'=>'testing', function() {
    return View::make('test');
}]);

দেখুন:

@if(Route::current()->getName() == 'testing')
    Hello This is testing
@endif

38
FYI, Route::is('testing')হিসাবে একই Route::current()->getName() == 'testing'
Hkan

@ হ্যাঙ্কান উভয়ই আলাদা নয়, Route::is('testing')- >> এটির পরীক্ষা করা কার্যকর হবে না Route::is('test')- >> এটি পরীক্ষা করে এটি Route::current()->getName() == 'testing'
উফ

1
@ নবীন না, Route::is()পথের নয়, পথের নাম পরীক্ষা করে।
Hkan

1
এছাড়াও সংক্ষিপ্তRoute::currentRouteName()
জেফ

@ হ্যাঁ হ্যাঁ, তবে আপনার ইউআরএলে প্যারামিটারগুলির সাথে কাজ করার সময় এটি কাজ করবে না, উদাহরণস্বরূপ, টোকেন ...
প্যাথ্রোস

66

হতে পারে আপনার এটি চেষ্টা করা উচিত:

<li class="{{ Request::is('admin/dashboard') ? 'active' : '' }}">Dashboard</li>

47

আমি এটি এইভাবে করব:

@if (Request::path() == '/view')
    // code
@endif

যেখানে '/ ভিউ' হ'ল নামটি রুট.এফপি।


বর্তমান দির বাড়ি থাকলে কীভাবে বলব? মানে, পাবলিক /। আহা, আমি বুঝতে পেরেছি, আমি শুধু টাইপ=='public'
Pathros

1
যদি বাড়ির দির রুট.এফপি-তে '/' হয়, আপনি কেবল লিখুন== '/')
Jucaman

আপনি কীভাবে এটি পরামিতিগুলির সাথে কাজ করবেন? শুধু রুটের নাম নয়।
প্যাথ্রোস

আপনি কীভাবে আপনার রুটগুলি কনফিগার করেছেন তার উপর নির্ভর করে আপনি রুট নামের পরে বিভিন্নভাবে প্যারামিটারগুলি একত্র করতে পারেন।
Jucaman

আমি এটি এর মতো করে দিয়েছি: Request::url()- আপনি সম্পূর্ণ ইউআরএল পাওয়ার চেয়ে
ডের্ক জান স্পেলম্যান

37

দর্শন পেতে current urlআপনি bladeনিম্নলিখিত ব্যবহার করতে পারেন,

<a href="{{url()->current()}}">Current Url</a>

সুতরাং আপনি নিম্নলিখিত কোড ব্যবহার করে তুলনা করতে পারেন,

@if (url()->current() == 'you url')
    //stuff you want to perform
@endif

2
আপনার যদি ব্লেডেও ক্যোরি স্ট্রিংয়ের দরকার হয় তবে আপনি request()->getQueryString()যা ব্যবহার করতে পারেন যা url()->current()ক্যোয়ারী স্ট্রিংটি ছেড়ে দেয় তার সাথে একত্রে খুব সহায়ক ।
স্পেনসার ও'রিলি

25

লারাভেল 5.2-এ বুটস্ট্র্যাপ অ্যাক্টিভ এনএভি ক্লাসের জন্য এটি আমার পক্ষে সহায়তা করে :

<li class="{{ Request::path() == '/' ? 'active' : '' }}"><a href="/">Home</a></li>
<li class="{{ Request::path() == 'about' ? 'active' : '' }}"><a href="/about">About</a></li>

1
আপনাকে ধন্যবাদ, আমি কোডটি জানতাম তবে গুগল আমাকে এখানে 5 সেকেন্ডে পেয়েছিল হা হা।

এছাড়াও লারাভেল ৪.২ এর সাথে একই কাজ করছে এবং এটি ভাল কাজ করছে। আপনাকে ধন্যবাদ
Vipertecpro

লারাভেল ৫..6-তেও কাজ করছি, ধন্যবাদ ... এটি প্রতিটি দৃশ্যের জন্য নৌ তৈরির হাত থেকে আমাকে রক্ষা করেছে: ডি
লারাভদেভ

19

একটু পুরানো তবে এটি এল 5 তে কাজ করে:

<li class="{{ Request::is('mycategory/', '*') ? 'active' : ''}}">

এটি উভয় / মাইক্যাটোগোরি এবং / মাইক্যাটোগরি / স্লাগ ক্যাপচার করে


1
আমি ব্যবহার করছি{{ Request::is('clientes/*') ? 'active' : ''}}
অ্যালেক্স অ্যাঞ্জেলিকো

16

লারাভেল 5.4

গ্লোবাল ফাংশন

@if (request()->is('/'))
    <p>Is homepage</p>
@endif

আপনি যদি ডোমেইন.com/?page_id=1, ডোমেইন.com/?page_id=2 এর মতো কোয়েরি স্ট্রিংয়ের সাথে ডিল করেন তবে এটি সর্বদা কার্যকর হয় না those যেমন URL গুলি "/" হিসাবে সমান হয়
রায়ান এস

আমি ব্যবহার করেছিrequest()->routeIs('...')
লাচেজার টডোরভ

15

আমি ব্যক্তিগতভাবে এটিকে দেখার চেষ্টা করব না। লারাভেলে আমি আশ্চর্যজনক নই, তবে আমি কল্পনা করতে পারি যে আপনি নিজের রুটটিকে একটি নিয়ামকের কাছে প্রেরণ করতে হবে এবং তারপরে নিয়ামকের মধ্যে এমন কিছু ব্যবহার করে ভেরিয়েবলটি (অ্যারের মাধ্যমে) আপনার দৃষ্টিতে পাস করতে হবে $url = Request::url();

যাইহোক এটি করার এক উপায়।

সম্পাদনা: আসলে উপরের পদ্ধতিটি দেখুন, সম্ভবত আরও ভাল উপায় better



9

সবচেয়ে সহজ উপায়টি হ'ল: Request::url();

তবে এখানে একটি জটিল উপায়:

URL::to('/').'/'.Route::getCurrentRoute()->getPath();

9

এটি করার দুটি উপায় রয়েছে:

<li{!!(Request::is('your_url')) ? ' class="active"' : '' !!}>

অথবা

<li @if(Request::is('your_url'))class="active"@endif>

8

আপনার এটি চেষ্টা করা উচিত:

<b class="{{ Request::is('admin/login') ? 'active' : '' }}">Login Account Details</b>

7

আপনার লারাভেল প্রকল্পে লাইব্রেরি <li>ব্যবহার করতে হবে এমন প্রতিটি + জন্য স্বয়ংক্রিয়ভাবে প্রয়োগ করার জন্য এই কোডটি সেট করুনHTMLBuilder

<script type="text/javascript">
    $(document).ready(function(){
        $('.list-group a[href="https://stackoverflow.com/{{Request::path()}}"]').addClass('active');
    });
</script>

7

আপনি বর্তমান URL টি পেতে এই কোডটি ব্যবহার করতে পারেন:

echo url()->current();

echo url()->full();

লারাভেল ডকুমেন্ট থেকে আমি এটি পেয়েছি।


5

পাথ ব্যবহার করে লারাভেলে লিখলে অন্য উপায়

 <p class="@if(Request::is('path/anotherPath/*')) className @else anotherClassName @endif" >
 </p>

আশা করি এটা সাহায্য করবে


4

আপনার বর্তমান পাথের অবস্থানটি পরীক্ষা করতে ইউআরএল :: পাথ () ব্যবহার করার পরিবর্তে , আপনি রুট :: কারেন্ট রৌটনাম () বিবেচনা করতে চাইতে পারেন তাই আপনি যদি আপনার পাথ আপডেট করেন তবে আপডেট করার জন্য আপনার সমস্ত পৃষ্ঠা সন্ধান করতে হবে না আবার পথের নাম।




2
@if(request()->path()=='/path/another_path/*')
@endif

যদিও এই কোডটি প্রশ্নের উত্তর দিতে পারে, কেন এবং / অথবা এই কোডটির প্রশ্নের উত্তর কীভাবে তার দীর্ঘমেয়াদী মানকে উন্নত করে তা সম্পর্কিত অতিরিক্ত প্রসঙ্গ সরবরাহ করে।
রোলস্টুহফলাহার

1

এটা চেষ্টা কর:

@if(collect(explode('/',\Illuminate\Http\Request::capture()->url()))->last() === 'yourURL')
    <li class="pull-right"><a class="intermitente"><i class="glyphicon glyphicon-alert"></i></a></li>
@endif

এই কোড স্নিপেটের জন্য আপনাকে ধন্যবাদ, যা কিছু সীমিত, তাত্ক্ষণিক সহায়তা সরবরাহ করতে পারে। একটি সঠিক ব্যাখ্যা কেন এটি সমস্যার একটি ভাল সমাধান তা দেখিয়ে তার দীর্ঘমেয়াদী মানকে ব্যাপকভাবে উন্নত করবে এবং ভবিষ্যতে পাঠকদের আরও অন্যান্য অনুরূপ প্রশ্নের সাথে আরও দরকারী করে তুলবে। আপনার অনুমানগুলি সহ কিছু ব্যাখ্যা যুক্ত করতে দয়া করে আপনার উত্তরটি সম্পাদনা করুন।
jhpratt GOFUNDME RELICENSING



0

সহজ উপায়

<li class="{{ Request::is('contacts/*') ? 'active' : '' }}">Dashboard</li>

এই কলড পরিচিতিগুলি /, পরিচিতি / তৈরি, পরিচিতি / সম্পাদনা ক্যাপচার করে ...



আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.