拉拉威尔对关系问题的界定


defining relationship issue in laravel

如何定义下表之间的关系。

Class->belongsToMany('Student');
Student->belongsToMany('Class');

由Class_Student表透视的Class表和Student表

我有如下的付款表

        $table->increments('id');
        $table->integer('class_id')->unsigned()->index();
        $table->integer('student_id')->unsigned()->index();
        $table->integer('payment_amount');
        $table->timestamps();
        $table->softDeletes();
        $table->foreign('class_id')->references('id')->on('classes')->onDelete('cascade');
        $table->foreign('student_id')->references('id')->on('students')->onDelete('cascade');

付款表中的付款金额意味着学生可以单独支付每节课的学费。

Payment has many students. And Payment has many Class.
Class has many Payments. And Class has many students.
Student has many Classs. And Student has many payments.

那么,如果没有支付表的透视表,我如何定义多对多关系呢?或者我应该为class_payment_student表创建数据透视表吗?

您应该创建一个数据透视表payment_student。如果您想传递数据透视表名称,您可以将其作为第二个参数传递,如下所示

示例:

return $this->belongsToMany("your_table_name", "pivot_table_name");