CakePHP 3.x - hasMany par l'association, - trouver

En supposant que j'ai exactement la configuration comme dans le livre de recettes ici:
http://book.cakephp.org/3.0/en/orm/associations.html

class StudentsTable extends Table
{
    public function initialize(array $config)
    {
        $this->belongsToMany('Courses', [
            'through' => 'CourseMemberships',
        ]);
    }
}

class CoursesTable extends Table
{
    public function initialize(array $config)
    {
        $this->belongsToMany('Students', [
            'through' => 'CourseMemberships',
        ]);
    }
}

class CoursesMembershipsTable extends Table
{
    public function initialize(array $config)
    {
        $this->belongsTo('Students');
        $this->belongsTo('Courses');
    }
}

Student BelongsToMany Course
Course BelongsToMany Student

id | student_id | course_id | days_attended | grade

Comment dois-je construire la requête pour trouver des Cours pour un Élève donné qu'il a Grade == "A"?

$query = $this->Courses->find('all')
    ->contain(['CourseMemberships'])
    ->where(['CourseMemberships.student_id' => $student['id'], 'CourseMemberships.grade' => 'A']);

Cela ne fonctionnera pas. Comment dois-je l'écrire?

Ce code déclenche l'erreur: "le Cours n'est pas associée à CourseMembers"

OriginalL'auteur Zbigniew Ledwoń | 2015-07-27