2016-11-16 7 views
8

मेरे पास एक विक्रेता ऑब्जेक्ट है जिसमें एक संबंधित उपयोगकर्ता है।लैरवेल संबंधों से खेतों को फेंक

{!! Form::selectGroup('seller_id', 'Seller', Seller::with('user')->pluck('user.first_name', 'id')->toArray(), null) !!} 

समस्या यह है कि मैं से रिश्ते (user.first_name) खेतों नहीं ले जा सकते है: मैं LaravelCollective से एक का चयन भरने के लिए तो मैं कुछ इस तरह बनाने की जरूरत की जरूरत है।

मैं यह कैसे कर सकता हूं?

अद्यतन

मैं यह कर रहा से बचना चाहते हैं ...

<?php 
    $sellers = []; 

    Seller::with('user')->get()->each(function ($seller) use (&$sellers) { 
     $sellers[$seller->id] = $seller->user->first_name; 
    }); 
?> 

उत्तर

15

आप Laravel के pluck विधि का उपयोग कर सकते हैं के रूप में:

$sellers = Seller::with('user')->get()->pluck('user.first_name', 'id') 
4

आप इसे join() & pluck() इस तरह का उपयोग करके प्राप्त कर सकते हैं:

$s = Seller::join('users', 'sellers.user_id', '=', 'users.id') 
      ->pluck('sellers.id', 'users.id') 
      ->all(); 

यह एक देना होगा इस तरह की सरणी:

[ 
    'seller_id_1' => 'user_id_1', 
    'seller_id_2' => 'user_id_2', 
    'seller_id_3' => 'user_id_3', 
    'seller_id_4' => 'user_id_4', 
    'seller_id_n' => 'user_id_n', 
]; 

आशा है कि इससे मदद मिलती है!

+0

आप 'प्लक करने के लिए अपने कॉल()' में पीछे की ओर तर्क है। जिन परिणामों को आप सुझाव दे रहे हैं उन्हें प्राप्त करने के लिए आपको कॉल करना होगा: 'pluck (' users.id ',' sellers.id ') '। पहला तर्क प्लक करने का मान है, दूसरा तर्क मूल्य प्रति मूल्य वाले सरणी कुंजी के रूप में उपयोग करने का मान है। – Soulriser

संबंधित मुद्दे