I am using PHP laravel 8.21.0 I have 3 tables. student, grade, and test. When I delete student data, I want all associated grade data to be deleted. Similarly, when I delete test data, I want the associated grade data to be deleted.
I tried using cascade delete, which does not seem to work. Am I doing something wrong? Any better way to make this work? Does anyone have a better idea to structure this relationship...
Grade table Schema:
 public function up()
    {
        Schema::create('grades', function (Blueprint $table) {
            $table->id('id')->unique();
            $table->foreignId('test_id')->constrained()->onDelete('cascade');
            $table->foreignId('student_id')->constrained()->onDelete('cascade');
            $table->date('testDate');
            $table->integer('testCount');
            $table->integer('vocabScore');
            $table->integer('readingScore');
            $table->integer('listeningScore');
            $table->integer('rawTotal');
            $table->timestamps();
        });
    }

 
    