متین نوروزی
5 سال پیش توسط متین نوروزی مطرح شد
4 پاسخ

ایجاد رابطه بین یوزر و مقاله و پست ها بصورت پولی مورفیسم

ایجاد رابطه بین یوزر و مقاله و پست ها بصورت پولی مورفیسم برای دریافت پست هایی که یوزر بوکمارک کرده
سلام خسته نباشید. من برای پیاده سازی پست هایی ک یک یوزر بوکمارک کرده این مدل هارو ساختم. یا حتی بخوایم راحت بگیم مدل پیاده سازی مقاله هایی که یوزر لایک کرده هم به این صورت هست.
مدل های من به این شکل هستن:


User 
Bookmark
Post
Article

که خب شمای دیتابیس به این شکل هست:


posts
    id - integer
    name - string

articles
    id - integer
    name - string

users
    id - integer
    name - string

bookmarkables
    bookmark_id - integer
    bookmarkable_id - integer
    bookmarkable_type - string

توی مدل یوزر به این شکل عمل کردم
User.php


public function bookmarks()
    {
        return $this->morphMany(Bookmark::class, 'bookmarks', 'bookmarkable_type','user_id');
    }

و مدل Bookmark:


 public function bookmarkable()
    {
        return $this->morphTo();
    }

    public function articles()
    {
        return $this->belongsTo(Article::class ,'bookmarkable_id','id');
    }

و به این شکل میخوام که بوکمارک های پست رو بگیرم


$articles  = auth()->user()->bookmarks;
dd($articles);

ثبت پرسش جدید
محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 5 سال پیش مطرح شد
متین نوروزی
تخصص : Backend Developer - Laravel an...
@matinwd 5 سال پیش آپدیت شد
0

@ali.bayat
@hesammousavi
@mohsenbostan

خیلی خوشحال میشم اگه راهنمایی کنین که ایا کاری که دارم میکنم براش درست هست یا نه. ممنونم از شما


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

@matinwd
سلام.
کارتون مشکلی نداره و کاملا منطقی هم هست.


متین نوروزی
تخصص : Backend Developer - Laravel an...
@matinwd 5 سال پیش مطرح شد
0

@mohsenbostan
ممنون از جوابتون. ولی خب کار نمیده. و توی این گروه های خارجی میگن که اصلا نیازی به مدل برای بوکمارک یا لایک ندارید.
توی استک اورفلو هم پرسیدم گفتن که برای متود articles توی خود مدل Bookmark باید متود morphedByMany استفاده کنید که اون رو هم استفاده کردم و ارور داد بهم.


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

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

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