সুস্পষ্টভাবে অ্যারে হিসাবে কেবল একটি কলাম পান


88

বিশদগুণ ব্যবহার করে লারাভেল 5.2-তে মাত্রিক মাত্রার অ্যারে হিসাবে কীভাবে পাবেন?

আমি চেষ্টা করেছি:

$array = Word_relation::select('word_two')->where('word_one', $word_id)->get()->toArray();

তবে এটি এটিকে 2 টি মাত্রিক অ্যারে হিসাবে দেয়:

array(2) {
      [0]=>
      array(1) {
        ["word_one"]=>
        int(2)
      }
      [1]=>
      array(1) {
        ["word_one"]=>
        int(3)
      }
    }

তবে আমি এটি পেতে চাই:

array(2) {
    [0]=>2
    [1]=>3
}

উত্তর:


191

আপনি pluckপদ্ধতিটি ব্যবহার করতে পারেন :

Word_relation::where('word_one', $word_id)->pluck('word_two')->toArray();

সংগ্রহের সাহায্যে কী কী পদ্ধতি উপলব্ধ তা উপলক্ষে আরও তথ্যের জন্য আপনি লারাভেল ডকুমেন্টেশন পরীক্ষা করে দেখতে পারেন ।


ধন্যবাদ, এটি সেই ফাংশন যা আমি কোথাও দেখেছি কিন্তু এটি আর খুঁজে পেল না, রেকর্ডের জন্যও, উত্তরটির উত্তর দেওয়ার জন্য, তবে সম্ভবত যোগ করুন -> টু অ্যারে () যেহেতু এই মুহুর্তে কোরিশন ফিরে আসে এবং নির্বাচনটি বাদ দেওয়া যেতে পারে ল্যারাভেল 5.2 এর জন্য ক্যোয়ারী থেকে কমপক্ষে।
রিইও

selectঅপ্রয়োজনীয় হওয়া সম্পর্কে সত্য , তবে ফলস্বরূপ সংগ্রহের ক্ষেত্রে আমি কোনও সমস্যা দেখছি না, কারণ সংগ্রহটি কেবল একটি অভিনব অ্যারে যা অ্যারের মতো একই জায়গায় পুনরাবৃত্তি হতে পারে। আমি সংগ্রহের পরিবর্তে খুব কমই অ্যারে ব্যবহার করি যেহেতু মেমরির পদচিহ্নগুলি সাধারণত কোনও সমস্যা হয় না এবং সংগ্রহগুলি খুব সহজেই অ্যারেগুলিতে কাস্ট করা যেতে পারে কারণ তারা toArrayপদ্ধতিটি বাস্তবায়ন করে । তবে আপনার প্রশ্নের সাথে ধারাবাহিকতার জন্য, আমি ফলাফলটি রূপান্তর করতে উত্তরটি পরিবর্তন করেছি ified
বোগদান

এই মুহুর্তে আমি লার্ভাল এবং স্পষ্টরূপে বেশ নতুন, সুতরাং পরে এ
জাতীয়টির

এই ভাগ করার জন্য আপনাকে ধন্যবাদ!
ভার্গব নানেকালভা

4
যদিও একটি Collectionএকটি আছে pluck()পদ্ধতি - কি আপনি ব্যবহার করছেন একটি পদ্ধতি QueryBuilder
পল স্পিগেল

12

আপনি একাধিক এন্ট্রি গ্রহণ করলে সঠিক পদ্ধতিটিকে তালিকা বলা হয় ।

    Word_relation::select('word_two')->where('word_one', $word_id)->lists('word_one')->toArray();

4
অসাধারণ! lists()এটা স্ব দ্বারা কাজ করে জরিমানা। ধন্যবাদ.
moreirapontocom

4
বুম! এটি পুরোপুরি কাজ করে। তবে অ্যারে () ফাংশনটি ব্যবহার করার দরকার নেই কারণ তালিকাগুলি () অ্যারে প্রদান করে।
সাহান

4
lists()লারাভেল ভার্চ .৫.২ এবং এর পরে অবহিত করা হয়েছে, যেখানে pluck()ট্যাগ উত্তর হিসাবে রয়েছে।
মাসা সাকানো

8

এটি সংক্ষেপে করা যেতে পারে:

Model::pluck('column')

যেখানে মডেলটি মডেল যেমন Userমডেল এবং কলামের মতো কলামের নামid

যদি তুমি করো

User::pluck('id') // [1,2,3, ...]

& অবশ্যই আপনার কাছে অন্য কোনও ধারা থাকতে হবে যেমন whereধরার আগে ধারা


6

আমি এই প্রশ্নটি জুড়ে এসে ভেবেছিলাম যে আমি স্পষ্ট করে বলব যে লারভেল ৫.২ এ একটি সুস্পষ্ট নির্মাতা অবজেক্টের তালিকা () পদ্ধতি অবনমিত হয়েছিল এবং প্লাক () দিয়ে প্রতিস্থাপন করা হয়েছিল।

// <= Laravel 5.1
Word_relation::where('word_one', $word_id)->lists('word_one')->toArray();
// >= Laravel 5.2
Word_relation::where('word_one', $word_id)->pluck('word_one')->toArray();

এই পদ্ধতিগুলি উদাহরণ হিসাবে উদাহরণস্বরূপও সংগ্রহ করা যেতে পারে

// <= Laravel 5.1
  $collection = Word_relation::where('word_one', $word_id)->get();
  $array = $collection->lists('word_one');

// >= Laravel 5.2
  $collection = Word_relation::where('word_one', $word_id)->get();
  $array = $collection->pluck('word_one');

-4

আমি মনে করি আপনি নীচের কোডটি ব্যবহার করে এটি অর্জন করতে পারবেন

Model::get(['ColumnName'])->toArray();


আপনি কি দয়া করে এটি ব্যাখ্যা করতে পারেন?
জে ... এস

4
আমি যতদূর সচেতন তাই Model::get(['ColumnName'])->toArray();করাই সমান Model::select('ColumnName')->get()->toArray()যা ফলস্বরূপ একটি বহুমাত্রিক অ্যারে হয়।
স্যামব্রেমনার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.