Nie widzę tu problemu. W rzeczywistości, czy nie jest odpowiedzią w twoim inne pytanie opublikowane dzisiaj?
Tak więc, z tego co rozumiem, musisz wymusić relację sprzężenia, gdy mówisz o hasMany , prawo? To właśnie robisz używając $joins szyk. Ponieważ User hasMany Attempt , musisz wymusić połączenie. Teraz prawdopodobnie nie będzie to konieczne, jeśli stronicujesz z Attempt z punktu widzenia. Jeśli wykonasz $this->Paginator->paginate('Attempt'); (zmieniając niezbędne relacje i warunki), nie musisz ręcznie dołączać do tabeli użytkowników, aby uzyskać dane.
I tak, jeśli Attempt nie dołącza się samo (zgodnie z dokumentacją), wtedy warunek zamówienia stwarza problem, ponieważ Attempt dane są pobierane w innym zapytaniu, a odwołanie do tabeli zostaje utracone w pierwszym zapytaniu. Rozwiązanie:wykonaj połączenie, ciasto zachowuje się zgodnie z oczekiwaniami.