একাধিক আইডির ভিত্তিতে লারাভেল মডেল ফলাফল পুনরুদ্ধার করুন


108

আমি ZendSearchআমার Laravelপ্রয়োগ প্রয়োগ করেছি। আমি এটিকে আমার অনুসন্ধান ইঞ্জিন হিসাবে ব্যবহার করছি যেখানে ব্যবহারকারীরা কোনও অনুসন্ধান শব্দ টাইপ করবেন এবং তারপরে ZendSearchপ্রাসঙ্গিকতার দ্বারা আদেশ করা ফলাফলের একটি অ্যারে আমাকে ফিরিয়ে দেবেন। তবে যে অ্যারেটি ZendSearchফিরে আসে, কেবলমাত্র আমার রেকর্ড আইডি দেয় (এটি আসল রেকর্ডের কোনও তথ্য ফেরত দেয় না)।

ZendSearchপ্রাসঙ্গিকতার ভিত্তিতে আইডির অর্ডার করা মাত্র একটি অ্যারে যা অ্যারে ফলাফলের ভিত্তিতে ফলাফলগুলি পুনরুদ্ধার করতে আমার মডেলকে জিজ্ঞাসা করার সঠিক উপায়টি কী হবে ?

আমি জানি Model::find(1)যেগুলির মধ্যে 1 এর আইডি দিয়ে আমার রেকর্ডটি ফিরিয়ে দেবে, তবে আমি কীভাবে সেই find()পদ্ধতিটি আইডির একটি অ্যারে খাওয়াতে পারি যা আমি এটি প্রদান করছি সেই অর্থে ফিরে আসতে চাই।


ডাউনওয়েটে কেন মন্তব্য করবেন?
justinl

1
আরেকটি ডাউনভোট? কেন? :) ল্যারাভেল ডক্স এমনকি ফাইন্ডম্যান ()) বা ফাংশনটিতে একটি অ্যারে পাস করার ক্ষমতা সম্পর্কে কিছু বলে না। এটি কীভাবে বৈধ প্রশ্ন নয়? :)
justinl

4
আপনার পক্ষে ভোট দিন, এই প্রশ্নটি আমাকে সহায়তা করেছে। :) আমি নথিতেও দেখিনি findMany, এবং এটি এপিআই নথিতে রয়েছে
পিটার লিয়াং

উত্তর:


233

এটা সহজ। ব্যবহার findMany:

$models = Model::findMany([1, 2, 3]);

উপায় দ্বারা, আপনি এতে একটি অ্যারেও পাস করতে পারেন find()এবং এটি অভ্যন্তরীণভাবে কল করবে findMany:

$models = Model::find([1, 2, 3]);

হুডের নীচে এটি কেবল একটি করে whereInযাতে আপনি এটিও করতে পারেন:

$models = Model::whereIn('id', [1, 2, 3])->get();

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

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