مهدی
3 سال پیش توسط مهدی مطرح شد
6 پاسخ

ارتباط ها در لارول

سلام کسی میدونه این ارتباط چجوری میشه
هر user میتونه برای تعداد زیادی post کامنت بزاره
وهر user میتونه برای تعداد زیادی کامنت بازم کامنت بزاره


ثبت پرسش جدید
محمد
تخصص : Laravel
@mprogrammer7 3 سال پیش آپدیت شد
2

سلام
یک جدول نظرات داریم که در اون id کاربر و id مقاله رو ثبت میکنی
و در داخل جدول نظرات یک فیلد اضافه میکنیم parentid که با خودش رابطه داره و میتونه null باشه
کد مایگریشن

            $table->id();

 $table->unsignedBigInteger('user_id');
            $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');

   $table->unsignedBigInteger('post_id');
            $table->foreign('post_id')->references('id')->on('posts')->onDelete('cascade');

            $table->boolean('approved')->default(0);

            $table->text('comment');
            $table->unsignedInteger('parent_id')->default(0);
$table->timestamps();

کد مدل

   public function user()
    {
        return $this->belongsTo(User::class);
    }

    public function child()
    {
        return $this->hasMany(Comment::class , 'parent_id' , 'id');
    }

@MM20001378


علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 3 سال پیش آپدیت شد
0

سلام
در جدول کامنت ها باید دو مقدار ippost و reply باشد .
مقدار reply بتواند null باشد .
به این صورت میتونی ارتباط برقرار کنید


علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 3 سال پیش مطرح شد
0

همونطور که مشخصه در مقدار idpost باید id اون پست ذخیره بشه و در مقدار reply اگر قرار است پاسخ یک کامنت باشد id او کامنت قرار بگیرد


رضا جهانگیر
تخصص : Full-Stack Developer
@rezajahangir 3 سال پیش مطرح شد
0

سلام به شما دوست عزیز.
فکر کنم منظور شما به صورت زیر باشه، جمله دقیق تر شما میشه:
هر user میتونه تعداد زیادی comment بذاره و هر کامنت فقط متعلق به یه user میشه، درسته؟
اگر جواب شما بله هست، پس رابطه شما میشه یک به چند.
اگر به راهنمایی بیشتری نیاز دارید، من درخدمتم.
موفق باشید.


مهدی
@MM20001378 3 سال پیش مطرح شد
0

سلام چیزی که گفتید درسته ولی من کلا یه سوال همیشه دارم ببیند من میتنونم رابطم رو به اینصورت تعریف کنم که هر user یک رابطه یک به چند داره با comment ها واز طرفی هر comment متعلق به یک user می باشد درسته خب حالا از طرفی کامنت با مثلا post ها و یه قسمت دیگه توی سایت که داریم مثلا article ها با این دوتا رابطه یک به چند مورف داره درسته خب من میتونم روابطم رو اینجوری تعریف کنم یا اینکه بگم هر user تعداد زیادی کامنت برای هر پست میتونه بزاره و از طرفی هر پست تعداد زیادی کامنت توسط user های مختلف قبول میکنه و یک رابطه چند به چند بنویسم سوال من اینه که الان توی بحث کامنت چجوری این رو باید پیاده سازی بکنم ینی روش اول درسته یا روش دوم یا هیچکدوم چجوری ؟
@rezajahangir


رضا جهانگیر
تخصص : Full-Stack Developer
@rezajahangir 3 سال پیش مطرح شد
0

ببینید اگر داخل پروژه قسمت های مختلفی دارید که میخواین واسشون به کاربر این اجازه رو بدین که کامنت بذاره، مثلا قسمت course، article و ... رو دارید. راه اشتباه اینه که شما بیای واسه هر قسمت یه جدول رابط تعریف کنی، اما راه صحیح استفاده از Polymorphic Relationships است.
واسه روابط هم میشه: هر post تعداد زیادی comment داره و هر comment فقط متعلق به یک post است.
امیدوارم مفید بوده باشه.
موفق باشید.


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

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