Cakephp - การเข้าสู่ระบบล้มเหลวเมื่อคอลัมน์ฐานข้อมูลถูกตั้งค่าเป็นค่าอื่นที่ไม่ใช่ 1

ขณะนี้ฉันกำลังทำงานกับ cakephp และมีแบบฟอร์มการเข้าสู่ระบบที่ทำงานได้อย่างสมบูรณ์ ฉันหมายถึง มันทำงานได้อย่างสมบูรณ์แบบ ...

ตารางผู้ใช้ของฉันเป็นดังนี้:

id user email password plan_id active

เมื่อผู้ใช้มีการเข้าสู่ระบบ plan_id = 1 perfeimtamente ใช้งานได้ แต่เมื่อการเข้าสู่ระบบ plan_id = 3 ล้มเหลว ...

การตั้งค่าการเข้าสู่ระบบของฉันคือ:

$this->Auth->authenticate = array(
   'Form' => array (
      'userModel ' => 'Supplier'
      'fields' = > array (
      'username ' => 'email' ,
      'password' => 'password '
   )
   ' scope ' => array (
     ' Supplier.active ' => 1
   )
);

ฉันไม่เข้าใจว่าเกิดอะไรขึ้น ... ผู้ใช้และรหัสผ่านถูกต้อง เมื่อฉันเปลี่ยนค่าของคอลัมน์ plan_id ฉันไม่สามารถเข้าสู่ระบบได้ หากคุณสามารถช่วยฉันได้ ขอบคุณตอนนี้


person Dayglor    schedule 09.09.2015    source แหล่งที่มา


คำตอบ (1)


http://book.cakephp.org/2.0/en/models/model-attributes.html#recursive

แก้ไขด้วย 'recursive' => -1

$this->Auth->authenticate = array(
   'Form' => array (
      'userModel ' => 'Supplier',
      'fields' = > array (
         'username ' => 'email' ,
         'password' => 'password ',
       ),
      'scope' => array (
         'Supplier.active ' => 1
       ),
      'recursive' => -1 
);
person Dayglor    schedule 09.09.2015
comment
คำอธิบายปัญหาและวิธีการแก้ไขของคุณไม่ตรงกัน/สมเหตุสมผล การเรียกซ้ำทั้งหมดจะป้องกันการส่งคืนข้อมูลโมเดลที่รวมเข้าด้วยกัน - มันจะไม่สร้างความแตกต่างโดยตรงระหว่างความสามารถในการเข้าสู่ระบบหรือไม่ - person AD7six; 10.09.2015
comment
@ AD7six ฉันยอมรับว่ามันไม่สมเหตุสมผล แต่ฉันตัดสินใจอย่างนั้น ... ฉันต้องการที่จะเข้าใจว่าทำไมไม่ได้รับการรับรองความถูกต้องถ้าใครสามารถตอบได้ ... - person Dayglor; 10.09.2015