no ale po co 2 klucze?
w tabeli profil
Kod
idprofil: { type: integer, foreignTable: sf_guard_user, foreignReference: id, required: true, onDelete: cascade }
i
Kod
all:
sf_guard_plugin:
profile_class: Profil
profile_field_name: idprofil
nie może tak być?
hmm, pewnie mogłoby się coś pomieszać... ale ja właśnie się obawiam, że dwa ID wprowadzą zamieszanie.
EDIT
zrobiłem tak jak radzisz.
tylko jedno mnie irytuje.
teraz jest wykonywane zapytanie, które pobiera usera z bazy sprawdzając czy jest taki. robi to w metodzie getGuardUser.
musiałem ją nadpisać bo nie było tam sprawdzania is_active.
no i przydałoby się jeszcze pobrac dane z tabeli profil.
jest metoda getProfil. ale wykonywane jest wtedy drugie zapytanie.
staram się to jakoś połączyć, ale musiałbym model chyba nadpisać.
<?php
public function getGuardUser()
{
if (!$this->user && $id = $this->getAttribute('user_id', null, 'sfGuardSecurityUser'))
{
$c = new Criteria();
$c->add(sfGuardUserPeer::IS_ACTIVE, true);
$c->add(sfGuardUserPeer::ID, $id);
$this->user = sfGuardUserPeer::doSelectOne($c);
if ( ! $this->user)
{
// the user does not exist anymore in the database
$this->signOut();
$this->setFlash('msg', 'Konto zostało zablokowane lub usunięte. W razie wątpliwości prosimy o kontakt z administratorem.');
//redirect to homepage
}
}
return $this->user;
}
?>
tak wygląda metoda getUser.
jakieś pomysły jak to inaczej rozwiązać niż modyfikować model?