Bonjour,
J'ai créé une Form permettant de saisir un Owner qui est un User avec quelques infos en plus (User BelongsTo Owner).
Donc, lorsque je soumet la Form le Owner's validator ET le User's validator font leur travail.
Au retour du validate(), je debug($owner) et je vois bien mes infos au bon endroit et un tableau d'errors pour Owner et également un tableau d'errors pour User.
Problème, seules les errors de Owner sont affichées dans la Form, pas les errors de User.
Pour faire plus clair (enfin j'espère), voici le debug de owner:

object(App\Model\Entity\Owner) {
    'new' => true,
    'accessible' => 
        'email' => true,
        'phone' => true,
        'company' => true,
        'tva_number' => true,
        'address' => true,
        'postcode' => true,
        'city' => true,
        'users' => true
    ],
    'properties' => 
        'company' => '',
        'email' => '',
        'phone' => '',
        'address' => '',
        'postcode' => '',
        'city' => '',
        'users' => 
            (int) 0 => object(App\Model\Entity\User) {
                'new' => true,
                'accessible' => 
                    'username' => true,
                    'password' => true,
                    'first_name' => true,
                    'last_name' => true,
                    'email' => true,
                    'role' => true,
                    'owner' => true,
                    'sites_user' => true,
                    'active' => true,
                    'token' => true
                ],
                'properties' => 
                    'email' => '',
                    'role' => 'owner',
                    'token' => '5a46d681d5efe24bf09886b1cdcfac50'
                ],
                'dirty' => 
                    'email' => true,
                    'role' => true,
                    'token' => true
                ],
                'original' => ],
                'virtual' => ],
                'errors' => 
                    'username' => 
                        (int) 0 => 'This field is required'
                    ],
                    'password' => 
                        (int) 0 => 'This field is required'
                    ],
                    'email' => 
                        (int) 0 => 'This field cannot be left empty'
                    ]
                ],
                'repository' => 'Users'

            }
        ]
    ],
    'dirty' => 
        'company' => true,
        'email' => true,
        'phone' => true,
        'address' => true,
        'postcode' => true,
        'city' => true,
        'users' => true
    ],
    'original' => ],
    'virtual' => ],
    'errors' => 
        'email' => 
            (int) 0 => 'This field cannot be left empty'
        ],
        'phone' => 
            (int) 0 => 'This field cannot be left empty'
        ],
        'address' => 
            (int) 0 => 'This field cannot be left empty'
        ],
        'postcode' => 
            (int) 0 => 'This field cannot be left empty'
        ],
        'city' => 
            (int) 0 => 'This field cannot be left empty'
        ]
    ],
    'repository' => 'Owners'
}

Est-ce que je suis sensé voir les erreurs des 2 entités?

Alain

2 réponses


Tu dois avoir accès à $owner->Users->errors() normalement

AlainB
Auteur

Cela semblerait logique vu tout ce qu'il fait concernant les associations de Models, mais une raison que j'ignore, ce n'est pas le cas.