CakePHP Auth ekstra veri almak

3 Cevap php

Ben sadece CakePHP'ye öğrenme, yani afedersiniz am

Ben UsersController ile CakePHP 1.2.5 Doğrulama bileşeni kullanıyorum. Kullanıcı model iki tablo içerir:

class User extends AppModel {
    var $name = 'User';
    var $belongsTo = 'Company';
}

Login () çağrıldığında, ben (LEFT JOIN yürütülmektedir) SQL günlüğüne alındığını verileri görmek, böylece modeli doğru gibi görünüyor, ama Auth sadece users tablodaki verileri saklar ve her şeyi düşer . Nasıl bir ekstra sorgusu yapmadan sonra şirket verileri alabilir?

3 Cevap

Eğer benim gibi rahat modifiye çekirdek kütüphane değilseniz Yoksa, sen de yapabilirsin ...

Lütfen UsersController.login eylem

function login() {
    if ($this->Auth->user()) {
        $Session->write('Company', $this->User->Company->findById($this->Auth->user('id')));
        $this->redirect($this->Auth->redirect());
    }

}

Sen görünümler üzerinde denetleyici ve $session->read('Company.name') üzerine $this->Session->read('Company.name') kullanarak şirket detaylarına erişebilirsiniz. Session bileşeni ve bir yardımcı eklemeyi unutmayın.

hat 819 kek / libs / controller / bileşenler / auth.php, bu olmalı

$data = $model->find(array_merge($find, $conditions), null, null, 0);

Bunu değiştirmeyi deneyin

$data = $model->find(array_merge($find, $conditions), null, null, 1);

basically set recursive to 1 might need to do this at some other places too.

Çekirdek değiştirerek daha iyi, containable davranışı deneyin: http://book.cakephp.org/view/474/Containable. Sayfanın altına yakın bir kullanıcı / profil / örnek vardır.