पर अतिरिक्त डेटा पास करें Auth
से मेरे खोजक में ऐसी स्थितियां हैं जिन्हें मुझे $this->request
तक पहुंचने की आवश्यकता है लेकिन मेरे पास UsersTable
पर इसका उपयोग नहीं है।खोजकर्ता auth
AppController :: प्रारंभ
$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;
}
मैं के बाद से मैं न UsersTable
पर $this->request->data
के लिए acces है finder
auth
के लिए एक अतिरिक्त डेटा FOM AppController
पारित की जरूरत है।
अद्यतन
लोग टिप्पणियों पर कह रहे हैं एक बुरा डिजाइन तो मैं वास्तव में मैं क्या जरूरत है समझा जाएगा है।
मैं एक मेज users
है, लेकिन प्रत्येक उपयोगकर्ता एक gym
के अंतर्गत आता है। username(email)
केवल एक विशेष gym
के लिए अद्वितीय है, इसलिए gym_id 1
से [email protected]
और gym_id 2
से [email protected]
पर [email protected]
हो सकता है। प्रवेश पृष्ठ पर मैं auth finder
जो gym
उपयोगकर्ता username
कि मैं provied अंतर्गत आता है बताने के लिए gym_slug
है।
यह मेरे लिए संभवतः खराब डिजाइन की तरह लगता है, तो आप दिखा सकते हैं कि आप किस पर पारित करने के लिए चाहते थे? यद्यपि यह किसी तरीके से व्यवहार के रूप में संभव होना चाहिए :-) – Spriz
मैं यूआरएल पर एक जिम स्लग पास कर रहा हूं इसलिए मुझे उस स्लग के आधार पर जिम की आईडी प्राप्त करने की आवश्यकता है जो उपयोगकर्ता को ढूंढने के लिए फ़िल्टर करता है क्योंकि मेरे पास 'जिम_आईडी' है 'उपयोगकर्ता' टेबल। मैं 'this-> request-> पैराम्स [' gym_slug] 'द्वारा स्लग तक पहुंच सकता हूं, लेकिन मुझे' UserTable' –
पर इस पर accesa नहीं है हमें यहां जाने के लिए थोड़ी अधिक जानकारी चाहिए। यह दोनों सवाल और टिप्पणी है कि हो सकता है आप एक उपयोगकर्ता के सत्यापन कर रहे हैं तो उन्हें अपने जिम के पृष्ठ पर रीडायरेक्ट करने की कोशिश कर से लगता है? अपना प्रश्न संपादित करें और वास्तव में प्रदान करें कि आप क्या कर रहे हैं और क्यों।आप ऊपर टिप्पणी तक जिम का जिक्र नहीं करते हैं और मुझे उत्सुकता है कि आपको अनुरोध डेटा को रीडायरेक्ट करने की आवश्यकता क्यों होगी (यदि आप यह भी कर रहे हैं) तो आपके पास उसी तालिका में जिम_आईडी संग्रहीत है। –