علی
6 سال پیش توسط علی مطرح شد
4 پاسخ

رابطه چند تا دیتابیس با هم

IMG
عکس

طبق عکس بالا چطوری در لاراول ارتباط بسازم که با داشتن یک $actor به تمام فیلم هایی که بازی کرده دسترسی داشته باشم

<?php
$actor= AppActor::find(1)
$actor->movies

ثبت پرسش جدید
محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 6 سال پیش مطرح شد
1

@Phoenix
اگر لاراول کار میکنید ، پیشنهاد میکنم اول کامل یاد بگیرید چون این موضوع یکی از اصلی ترین مفهایم هستش یعنی Model ها که باید کامل بدونید. درکل برای این کار باید بدونید برای یک جدول شما قراره یک رابطه با چند تا داده داشته باشه یا برعکس و کلا چند تا با چندتا باشه . همونطور که گفتم باید این ها رو کامل بدونید.
بعد برای این نوعی که بالا گفتید ، شما باید یک رابطه یک به چند بین تیبل Actor و Movie بسازید. داخل مدل Actor یاید کد زیر رو بنویسید.
اول اون بالا این رو اضافه کنید :

use Movie;

بعدش این رو داخل کلاس اضافه کنید.

public function movies() {
    return $this->hasMany(Movie::class);
}

الان داخل کنترلرتون میتونید از کد خودتون استفاده کنید.


علی
@Phoenix 6 سال پیش آپدیت شد
0

@mohsenbostan

IMG

این رابطه چطور
نمیخوام به صورت مستقیم بین فیلم و بازیگر رابطه باشه چون هر فیلم چند تا شخصیت داره و هر شخصیت به یک بازیگر مربوط میشه
فقط نمیدونم دقیقا رابطه Has Many Through رو چطور پیاده کنم یکم پیچیدست


محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 6 سال پیش مطرح شد
0

@Phoenix
کل رابطه ها رو جدا جدا برای همه مدل ها پیاده سازی کن. بعدا میشه از رابطه یک تیبل به رابطه تیبل دیگه هم دسترسی داشت


مهدی
@code2code 6 سال پیش آپدیت شد
1

خوب از رابطه پولی مورفیک استفاده کن
توی رابطه پولی مورفیک میتونی یه ستون واسه نوع کاراکتر یه ستون واسه آیدی کاراکتر تعیین کنی اینجوری میتونی بدون اینکه جدولات

actor
    id - integer
    name - string

director
    id - integer
    name - string

movie
    id - integer
    name - string

movieable
    movie_id - integer
    movieable_id - integer // actor - director ...
    movieable_type - string  // actor - director ...

https://laravel.com/docs/5.7/eloquent-relationships#polymorphic-relationships
داکیومنت کامله نیاز به توضیح نمیبینم...


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

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