راکت

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

6 پاسخ

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

ثبت پرسش جدید

پاسخ‌ها

6
محمد
محمد
@mprogrammer7

تخصص: Laravel

سلام
یک جدول نظرات داریم که در اون 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

علیرضا کفایتی
علیرضا کفایتی
@alirezakefayati

تخصص: برنامه نویس laravel, vue.js

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

شاید پاسخ شما همین‌جا باشد

علیرضا کفایتی
علیرضا کفایتی
@alirezakefayati

تخصص: برنامه نویس laravel, vue.js

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

رضا جهانگیر
رضا جهانگیر
@rezajahangir

تخصص: Full-Stack Developer

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

مهدی
مهدی
@MM20001378

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

رضا جهانگیر
رضا جهانگیر
@rezajahangir

تخصص: Full-Stack Developer

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

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

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