miladk313
5 سال پیش توسط miladk313 مطرح شد
3 پاسخ

رابطه ی hasOneThrough در لاراول

سلام .دوستان ، کسی اطلاعاتی در مورد رابطه ی hasOneThrough که از لاراول 5.8 اضافه شده داره ؟


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
3

این جوری به مثال نگاه کنید که:

  • هر Supplier یک User داره...
  • و هر User یه سری History یا تاریخچه‌ای داره
  • حال فرض کنید، می‌خواهیم History یه Supplier رو داشته باشیم

اما داخل جدول History .. ما فیلد supplier_id رو نداریم... در چنین شرایطی از رابطه hasOneThrough باید استفاده کرد.
و به شکل زیر:

        return $this->hasOneThrough(
            'App\History',
            'App\User',
            'supplier_id', // Foreign key on users table...
            'user_id', // Foreign key on history table...
            'id', // Local key on reviewers table...
            'id' // Local key on users table...
        );

علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

رابطه "hasOneThrough" مدل ها را از طریق یک رابطه واسطه واحد پیوند می دهد.

users
    id - integer
    supplier_id - integer

suppliers
    id - integer

history
    id - integer
    user_id - integer

هرچند جدول history فیلد supplier_id نداره، اما رابطه hasOneThrough می‌تواند دسترسی به history کاربر را در مدل suppliers ارائه دهد.

اطلاعات بیشتر در مستندات لاراول:
https://laravel.com/docs/5.8/eloquent-relationships#has-one-through


miladk313
تخصص : برنامه نویس لاراول
@miladk313 5 سال پیش مطرح شد
0

جناب بیات عزیز این متن رو خودمم داخل مستندات خوندم ولی درست متوجه نشدم . میشه یکم ملموس تر توضیح بدین ؟ممنون


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
3

این جوری به مثال نگاه کنید که:

  • هر Supplier یک User داره...
  • و هر User یه سری History یا تاریخچه‌ای داره
  • حال فرض کنید، می‌خواهیم History یه Supplier رو داشته باشیم

اما داخل جدول History .. ما فیلد supplier_id رو نداریم... در چنین شرایطی از رابطه hasOneThrough باید استفاده کرد.
و به شکل زیر:

        return $this->hasOneThrough(
            'App\History',
            'App\User',
            'supplier_id', // Foreign key on users table...
            'user_id', // Foreign key on history table...
            'id', // Local key on reviewers table...
            'id' // Local key on users table...
        );

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

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