vendredi 29 avril 2016

Many to Many relationship works one way

I have a User and a Quiz models. I have many-to-many relationship defined between them in the following way:

User model

public function subscriptions()
{
    return $this->belongsToMany(Quiz::class, 'subs_users', 'quiz_id', 'user_id')->withTimestamps()->withPivot('accepted');
}

Quiz model

public function subscribers()
{
    return $this->belongsToMany(User::class);
}

Pivot table

Schema::create('subs_users', function (Blueprint $table) {
    $table->integer('user_id')->unsigned();
    $table->integer('quiz_id')->unsigned();

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

    $table->primary(['user_id', 'quiz_id']);

    $table->boolean('accepted')->index();

    $table->timestamps();
});

When I call $quiz->subscribers, it returns a collection of users as expected. However, $user->subscriptions always returns an empty array. Why is that?



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire