Row does not contain primary user_id column data
- Tom1141
- Člen | 27
PHP 5.4.3, Nette 2.0.7
Nazdar, mám problém s prihlasovaním užívateľov.
public function authenticate(array $credentials)
{
list($username, $password) = $credentials;
$row = $this->users->findByName($username);
if (!$row) {
throw new Security\AuthenticationException('The username is incorrect.', self::IDENTITY_NOT_FOUND);
}
if ($row->password !== $this->calculateHash($password, $row->password)) {
throw new Security\AuthenticationException('The password is incorrect.', self::INVALID_CREDENTIAL);
}
unset($row->password);
return new Nette\Security\Identity($row->id, NULL, $row->toArray());
}
Pri prihlasovaní nastane problém v poslednom riadku, vypíše:
Row does not contain primary user_id column data.
Vedel by mi niekto poradiť v čom môže byť problém? (stĺpce v tabuľke
user: id(PK), , username (unique), password,… ) Za pomoc vopred ďakujem.
Editoval Tom1141 (20. 1. 2013 12:24)
- Tom1141
- Člen | 27
findByName vyzerá nasledovne:
public function findByName($username)
{
return $this->findBy(array('username' => $username))->fetch();
}
Som nováčik v Nette, základ práce s databázou a triedu Authenticator som založil na tutoriáli dostupnom na nette.org ‚Píšeme prvú aplikáciu‘.
- castamir
- Člen | 629
Fajn, zkusím to znovu. Co se ti vypíše, když upravíš kód té metody následovně
public function authenticate(array $credentials)
{
list($username, $password) = $credentials;
$row = $this->users->findByName($username);
if (!$row) {
throw new Security\AuthenticationException('The username is incorrect.', self::IDENTITY_NOT_FOUND);
}
if ($row->password !== $this->calculateHash($password, $row->password)) {
throw new Security\AuthenticationException('The password is incorrect.', self::INVALID_CREDENTIAL);
}
dump($row); // zmena
die; // zmena
unset($row->password);
return new Nette\Security\Identity($row->id, NULL, $row->toArray());
}
Editoval castamir (20. 1. 2013 16:31)
- Tom1141
- Člen | 27
tu je sql dump (len nad tabuľkou používateľov)
http://pastebin.com/aVpA83AZ
Editoval Tom1141 (20. 1. 2013 17:49)