Sahandi81
3 سال پیش توسط Sahandi81 مطرح شد
1 پاسخ

روابط چند به چند لاراول

سلام
من سه تا جدول دارم به اسم های company , car_kind , car_group
در دو جدول car_kind , car_group یک ستون به نام company_code داریم که با جدول company در ارتباط هستند. در کنارش در جدول car_kind ستون car_group_code رو داریم که اینبار با جدول car_group در ارتباط هستش.

الان بنده میخوام وقتی یک رکورد از جدول car_kind رو کال کردم هم زمان هرآنچه که در جدول car_group با جداول company , car_kind در ارتباط هست رو دریافت کنم.
ممنون میشم راهنمایی کنید.

Controller

....
$result = Company::with([
            'cars' => function($q){

            },
            'regions',
            'groups'
        ])->find($fields['company_code']);
return $result  ;
....

CarKind

...
public function carGroup()
    {
        return $this->hasOne(CarGroup::class, 'code', 'group');
    }

...

حل شد -------------------------------------------------------<<<

با متد hasOneThrough
کد :

public function carGroup()
    {
        return $this->hasOneThrough( Company::class,CarGroup::class,'code', 'code' , 'car_group_code', 'company_code');
    }

اما شما نام گذاری هارو درست انجام بدین. بنده بنا به دلایلی نتونستم از اسم های استاندارد استفاده کنم


ثبت پرسش جدید
میلاد خسروی
تخصص : برنامه نویس بامزه
@milwad 3 سال پیش مطرح شد
0

سلام خسته نباشید
بله دقیقا این ساختار که داره
https://laravel.com/docs/9.x/eloquent-relationships#has-one-through-key-conventions


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام