اذهب إلى المحتوى
  • 0

استخدام pulk في لارافل لملء حقول select

Amir Alsaeed

السؤال

لدي select group ضمن فورم وأرغب بتعبئة الخيارات عن طريق علاقة تربط جدولين في قاعدة البيانات seller والذي يرتبط مع مستخدمين user، وقد حاولت استخدام pulk ولكنها لم تنجح:

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

والمشكلة أنني لم أتمكن من الحصول على اسماء المستخدمين من user.first_name. فكيف يمكنني تنفيذها بشكل مشابه؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

باستخدام Pulk في لارافل يمكنك تنفيذها كالتالي:

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

ثم المرور على المتغيّر sellers وطباعة الحقول اللازمة منه.

وأيضاً يوجد طريقة أخرى عن طريق استخدام join مع pulk:

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

عندها سيتم الدمج بين المستخدمين والبائع عن طريق الرقم الفريد المعرّف id. والحصول على مصفوفة بشكل مشابه للتالي:

[
    'seller_1' => 'user_1',
    'seller_2' => 'user_2',
    'seller_3' => 'user_3',
    ....
];

كما ويمكنك بشكل مباشر تعريف العلاقة بداخل المودل:

Class Seller extends Model {
    ...

    public function user()
    {
        return $this->hasOne(user::class, 'id')
            ->select('id', 'first_name');
    }
}

ويمكنك تغيير نوع العلاقة إلى hasMany أو النوع الذي يناسب مشروعك

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يمكن استخدام pluk في الاستعلام بهذا الشكل 

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

ويمكن تنفيذها مع join 

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

ويمكن في داخل ملف Model بهذا الشكل 

public function user()
{
	return $this->hasOne(user::class, 'id')->select('id', 'first_name');
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...