অন্যান্য জিইটি প্যারামিটারগুলি সহ নয় লারাভেল প্যাজিনেশন লিঙ্কগুলি


110

আমি ল্যারাভেল 4 এর প্যাজিনেশন ক্লাসের সাথে একসাথে ব্যবহার করছি।

সমস্যা: যখন ইউআরএলে কিছু জিইটি প্যারামিটার থাকে, যেমন http://site.com/users?gender=female&body=hot:, উত্পাদিত পৃষ্ঠাগুলি লিঙ্কগুলিতে কেবলমাত্র থাকেpage প্যারামিটার থাকে এবং অন্য কিছুই না।

ফলক টেম্পলেট

{{ $users->link() }}

এর জন্য একটি ->append()ফাংশন রয়েছে, তবে যখন আমরা জানি না যে জিইটি প্যারামিটারগুলির মধ্যে কতগুলি রয়েছে, তখন আমরা কীভাবে আমাদের ব্লেড টেম্পলেটটিকে বিশৃঙ্খলা না করে কোডের append()পুরো অংশ ছাড়াই অন্য জিইটি প্যারামিটারগুলি পৃষ্ঠাভুক্ত লিঙ্কগুলিতে অন্তর্ভুক্ত করতে ব্যবহার করতে পারি if?

উত্তর:


127

সম্পাদনা: মেহেদীর উত্তরের সাথে কনারের মন্তব্যের এই কাজটি করা প্রয়োজন। উভয় তাদের স্পষ্টির জন্য ধন্যবাদ।

->appends() একটি প্যারামিটার হিসাবে একটি অ্যারে গ্রহণ করতে পারেন, আপনি পাস করতে পারেন Input::except('page') , যে কৌশলটি করা উচিত।

উদাহরণ:

return view('manage/users', [
    'users' => $users->appends(Input::except('page'))
]);

37
এইভাবে অন্যান্য গুগলারের জন্য আসা কেবলমাত্র নোট করুন - এটি এখন বহুবচন appends, নয় append । সঠিক শৃঙ্খলা এমন কিছু হবে$query->appends($foo)->links();
কনার পিট

6
আমি $query->appends(Input::except('page'))->links();আরও ভাল কাজ খুঁজে পেয়েছি । অন্যথায়, আপনি কোনও পৃষ্ঠা ক্লিক করলে পৃষ্ঠা পরিবর্তনশীল আপডেট হয় না। লারাভেল ৪.১.২৪।
বিটলেথার

... এবং তারপরে আমি মেহেদির সমাধান দেখতে স্ক্রোল করে নামলাম।
বিটল্যাথ

4
লারাভেল 5: {!! $myItems->appends(Input::except('page'))->render() !!}
ইকায়রোল

4
লারাভেল 5.2 এ আপনার ইনপুটটির পরিবর্তে অনুরোধটি ব্যবহার করা উচিত
ক্রিস্টোফভি

107

আমি মনে করি আপনার এই কোডটি লারাভেল 5 এ ব্যবহার করা উচিত Also এছাড়াও এটি কেবল প্যারামিটারের সাথেই নয় pageঅন্য কোনও প্যারামিটারগুলির সাথেও কাজ করবে :

$users->appends(request()->input())->links();

ব্যক্তিগতভাবে, আমি ব্যবহার এড়াতে চেষ্টা করি Facades যতটা পারি তার করি। গ্লোবাল সহায়ক ফাংশন ব্যবহার করা কম কোড এবং অনেক মার্জিত।

হালনাগাদ:

Inputফ্যারাড ব্যবহার করবেন না কারণ এটি লারাভেল ভি 6 + এ অবনতিযুক্ত


4
এটি লার্যাভেল 5.6 এর জন্য কাজ করেছে, গ্রহণযোগ্য উত্তর সমাধানটি আমার জন্য একটি ত্রুটির কারণ হয়েছিল।
মুহাম্মাদ আজিজ

4
আমি এটি 5.3 প্রকল্পেও সফলভাবে প্রয়োগ করেছি; আমি এই সহজ পদ্ধতিটিও পছন্দ করি
কেজোনস

4
এছাড়াও, আমি লক্ষ্য করেছি যে আপনার except('page')এই সমাধানটি ব্যবহার করার দরকার নেই ।
বেকারস্ট্রিট সিস্টেমস

4
খুব উপকারী. ধন্যবাদ
ভিরাজ আমারসিংহে

তবে আপনি কী এড়াতে চাইছেন এমন একটি বিশ্বস্ত সহায়ক ছাড়াও কী বিশ্বব্যাপী সহায়ক? ..
কোরবেনডালাস

42

আপনি ব্যবহার করতে পারেন

->appends(request()->query())

নিয়ামকের উদাহরণ:

$users = User::search()->order()->with('type:id,name')
    ->paginate(30)
    ->appends(request()->query());

return view('users.index', compact('users'));

দৃষ্টান্তের উদাহরণ:

{{ $users->appends(request()->query())->links() }}

4
এটি মোহাম্মদ সাইদ ( লারাভেল
রায়

4
আমি মনে করি @ রয় যা আরও ভাল উদাহরণ দিয়েছেন তার কারণেই এটি সেরা উত্তর। এছাড়াও এটিতে নিয়ামক উদাহরণটি দেখুন + দেখুন উদাহরণ।
মাকি

4
আমার জন্য কাজ করেছেন। +1
মনোজ কুমার

4
এটিই সেরা সমাধান, এটি আমার
পক্ষেও

40

সচেতন হতে হবে এর Input::all(), এটা পূর্ববর্তী অন্তর্ভুক্ত করা হবে ?page=আপনি খুলতে প্রতিটি পৃষ্ঠার মধ্যে আবার এবং আবার মান!
উদাহরণস্বরূপ আপনি যদি থাকেন ?page=1এবং আপনি পরবর্তী পৃষ্ঠাটি খোলেন, এটি খুলবে ?page=1&page=2
তাই সর্বশেষ মান পৃষ্ঠাটি আপনি যে পৃষ্ঠাটি দেখবেন তা হবে! আপনি যে পৃষ্ঠায় দেখতে চান তা নয়

সমাধান: ব্যবহার Input::except(array('page'))


28

append()তবে তা নয় appends() , সঠিক উত্তরটি হ'ল:

{!! $records->appends(Input::except('page'))->links() !!}

11

লারাভেল 5

ভিউতে অবশ্যই এর মতো কিছু থাকতে হবে:

{!! $myItems->appends(Input::except('page'))->render() !!}


6

লারাভেল x.x প্যাগিনেটরে নতুন পদ্ধতি যুক্ত করেছে:

->withQueryString()

সুতরাং আপনি এটি ব্যবহার করতে পারেন:

{{ $users->withQueryString()->links() }}

7.x ব্যবহারের নীচে ল্যারাভেলের জন্য:

{{ $users->appends(request()->query())->links() }}

ওয়াও এর আশ্চর্যজনক মাত্র একটি লাইন। আমি দস্তাবেজগুলি মিস করেছি। যদিও 7.x প্রেম
এমআর_এএমডিএভি

আপনি 2 টি পন্থা সরবরাহ করুন। দয়া করে তাদের মধ্যে পার্থক্য করুন এবং কোনটি আরও ভাল এবং বেশি দরকারী তা তথ্য সরবরাহ করুন
এমআর_এএমডিএভি

সেরা উত্তর. আমি পারলে 2 ভোট
দিতাম

4
হুডের পিছনে এমআর_এএমডিএভি উভয়ই একরকম। লারাভেল সবেমাত্র এটির সর্বশেষতম সংস্করণে এটি গ্রহণ করেছে।
রিকেশ শ্রেষ্ঠ

5

সমস্ত ইনপুট প্যারাম তবে পৃষ্ঠা রাখতে এই নির্মাণটি ব্যবহার করুন

{!! $myItems->appends(Request::capture()->except('page'))->render() !!}

কেন?

1) আপনি অনুরোধ করতে যোগ করা সমস্ত কিছু বাদ দিন

  $request->request->add(['variable' => 123]);

2) আপনার প্রয়োজন নেই the ফাংশনের জন্য ইনপুট প্যারামিটার হিসাবে অনুরোধ

3) আপনি "পৃষ্ঠা" বাদ দিচ্ছেন

পিএস) এবং এটি লারাভেল 5.1 এর জন্য কাজ করে


4

এটি আপনার দেখুন পৃষ্ঠায় অন্তর্ভুক্ত করুন

 $users->appends(Input::except('page'))

4

যার জন্য লারাভেল 5 বা তার বেশি ফলকের মধ্যে রয়েছে:

{{ $table->appends(['id' => $something ])->links() }}

আপনি পাস আইটেম সঙ্গে পেতে পারেন

$passed_item=$request->id;

এটি দিয়ে পরীক্ষা

dd($passed_item);

আপনার অবশ্যই কিছু মূল্য পাওয়া উচিত


0

পৃষ্ঠাগুলি জন্য পৃষ্ঠা নম্বর পাসও। এটার মতো কিছু

$currentPg = Input::get('page') ? Input::get('page') : '1';
    $boards = Cache::remember('boards'.$currentPg, 60, function(){ return WhatEverModel::paginate(15); });

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