mardi 1 décembre 2015

How do I build a query saying "get me all diplomas of which all steps are in this pivot table"?

I have three models in my laravel project, Step, Diploma and Pupil. This is what the relations look like:

class Pupil {
    function steps() {
        return $this->belongsToMany(Step::class);
    }

    function diplomas() {
        return $this->belongsToMany(Diploma::class);
    }
}

class Step {
    function diploma() {
        return $this->belongsTo(Diploma::class);
    }
}

class Diploma {
    function steps() {
        return $this->hasMany(Step::class);
    }
}

Now I have a form where the admin can check boxes of which steps a pupil has accomplished, which I then save by doing $pupil->steps()->sync($request['steps']);. Now what I want to do is find the diplomas of which all the steps have been accomplished and sync them too. But for some reason I can't figure out how to build that query. Is this clear? Would anyone like to help?



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire