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

حذف اخبار و مقالات به همراه نظرات انها

دوستان من برای بخش نظرات مقاله و اخبار از یه تیبل استفاده میکنم
حالا میخوام اگه خبر یا مقاله ای حذف شد نظرات اون هم حذف بشه
این مایگریشن کامنت ها

        Schema::create('comments', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('user_id')->unsigned();
            $table->integer('parent_id')->unsigned()->default(0);
            $table->boolean('status')->default(0);
            $table->body('comment');
            $table->integer('commentable_id')->unsigned();
            $table->string('commentable_type');
            $table->timestamps();
        });

این کد رو بهش اضافه میکنم اما فقط برای مقالات اوکی میشه

            $table->foreign('commentable_id')->references('id')->on('articles')->onDelete('cascade');

اگه داخل on بیام و اخبار رو ب این صورت (,'new ''articles') اضافه کنم زمانی که کامنتی ارسال کنم کلا ارور میگیره
اگه هم همین خط کد رو برای اخبار هم بنویسم زمان میگریت شدن خطا میده
راه حلی دارید ممنون میشم راهنمایی کنید


ثبت پرسش جدید
vahid Mohammadi
@viva.mohammadi 6 سال پیش مطرح شد
1

@m.delshad78
شما دارید از رابطه پلی مرفیک استفاده می کنید و امکان cascade delete به این شکل وجود نداره
برای اینکار باید مراحل زیر رو انجام بدین
در روت پروژه تون فرمان زیر رو اجرا کنید تا پکیج مورد نظر نصب بشه:

 composer require shiftonelabs/laravel-cascade-deletes

بعد باید در مدل های مقالات و اخبار و نظرات کد زیر رو وارد کنید:

use ShiftOneLabs\LaravelCascadeDeletes\CascadesDeletes;

بعد در مدل Articles تغییرات زیر رو بدقت اعمال کنید:

namespace App;

use Illuminate\Database\Eloquent\Model;
use ShiftOneLabs\LaravelCascadeDeletes\CascadesDeletes;

class Article extends Model {
    use CascadesDeletes;

    protected $cascadeDeletes = ['Comment''];

عینا همین تغییر رو برای مدل اخبار خودتون هم انجام بدید.
می تونید توضیحات تکمیلی رو هم در گیت هاب این پکیج بخونید.
نکته ‌: می تونید با استفاده از این پکیج سافت دیلیت رو هم پیاده سازی بفرمایید.


Awmx
@awmx 6 سال پیش مطرح شد
1

@viva.mohammadi
من بدون پکیج و با استفاده از این کد انجام دادم و اوکی شد بنظرتون مشکلی نداره؟


    protected static function boot()
    {
        parent::boot();

        static::deleting(function ($article) {

            $article->comments()->delete();
        });
    }

vahid Mohammadi
@viva.mohammadi 6 سال پیش مطرح شد
1

@m.delshad78
عالیه این پکیج هم دقیقا اینکارو انجام میده که شما انجام دادین


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

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