Il mio finder da Auth
ha le condizioni che ho bisogno di accedere a $this->request
ma non ho accesso per quello su UsersTable
.Passare dati aggiuntivi all'autore del finder
AppController :: inizializzo
$this->loadComponent('Auth', [
'authenticate' => [
'Form' => [
'finder' => 'auth',
]
]
]);
UsersTable
public function findAuth(Query $query, array $options)
{
$query
->select([
'Users.id',
'Users.name',
'Users.username',
'Users.password',
])
->where(['Users.is_active' => true]); // If i had access to extra data passed I would use here.
return $query;
}
ho bisogno di passare un dati aggiuntivi fom AppController
a finder
auth
dal momento che non hanno accesso al $this->request->data
su UsersTable
.
Aggiornamento
La gente dice sui commenti che è una cattiva progettazione in modo vi spiegherò esattamente quello che mi serve.
Ho una tabella users
ma ogni utente appartiene a un gym
. Il username(email)
è univoco solo per un particolare gym
in modo da poter avere un [email protected]
da gym_id 1
e un altro [email protected]
da gym_id 2
. Nella pagina di accesso, ho il gym_slug
da comunicare a auth finder
a quale gym
l'utente username
appartiene.
Questo suona forse come un cattivo design per me, potresti mostrare quello che volevi trasmettere? Deve essere possibile in qualche modo come un comportamento :-) – Spriz
Sto passando una slug da palestra in url quindi ho bisogno di ottenere l'ID della palestra basata su quel slug da filtrare a find dell'utente perché ho 'gym_id' a tabella 'utenti'. Posso accedere allo slug con 'this-> request-> params ['gym_slug]' ma non lo accetto a 'UsersTable' –
Abbiamo bisogno di un po' più di informazioni per andare avanti qui. Sembra sia dalla domanda che dai commenti che forse stai autenticando un utente e poi provi a reindirizzarlo alla pagina della loro palestra? Modifica la tua domanda e fornisci esattamente ciò che stai facendo e perché.Non menzioni la palestra fino al commento sopra e sono curioso del motivo per cui avresti bisogno dei dati della richiesta per reindirizzare (se è anche quello che stai facendo) dato che hai il gym_id memorizzato nello stesso tavolo. –