私のファインダーAuth
には、$this->request
にアクセスする必要のある条件がありますが、UsersTable
にアクセスできません。ファインダー認証に余分なデータを渡す
のAppController ::私はUsersTable
に$this->request->data
へのアクセスもを持っていけないので、finder
auth
に余分なデータFOM AppController
を渡す必要
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;
}
$this->loadComponent('Auth', [
'authenticate' => [
'Form' => [
'finder' => 'auth',
]
]
]);
がUsersTable初期化します。
更新
人々は、私はまさに私が必要なものを説明しますので、悪いデザインであることをコメントに言っています。
私はテーブルusers
を持っていますが、各ユーザはgym
に属しています。 username(email)
は、特定のgym
にしかユニークではないので、gym_id 1
から[email protected]
を、gym_id 2
から別の[email protected]
を得ることができます。 私はログインページにgym_slug
をauth finder
と書いています。gym
私が提供したユーザusername
が所属しています。
これはおそらく私には悪いデザインのように聞こえる、あなたが渡したいものを示すことができますか?しかし何らかの形で動作する必要があります:-) – Spriz
私はURLにジムスラッグを渡していますので、私はジムのIDを取得する必要があります。 'users'テーブルです。私は 'this-> request-> params ['gym_slug]'でスラッグにアクセスできますが、これは 'UsersTable'にアクセスしていません –
ここに行くにはもう少し情報が必要です。質問とコメントの両方から、ユーザーを認証してからジムのページにリダイレクトしようとしていると思われますか?あなたの質問を編集し、あなたがやっていることとその理由を正確に伝えてください。あなたは上記のコメントまでジムについて言及していませんし、gym_idが同じテーブルに格納されているので、リダイレクトするリクエストデータが必要なのはなぜか分かります。 –