Doctrine – vlastni repozitar, jak na to?
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- radik
- Člen | 21
Cau,
jakym zpusobem muzu v doctrine udelat vlastni repository? Kdyz jsem zkusil
udelat:
Entita
/**
* @ORM\Entity(repositoryClass="App\Models\Repository\User")
*/
class User extends \Kdyby\Doctrine\Entities\BaseEntity
{
...
Repozitar:
class User extends \Kdyby\Doctrine\EntityRepository
{
public function FindByUsername($username)
{
$q=$this->_em->createQuery('SELECT u FROM User u WHERE u.username = :username');
$q->setParameter('username', $username);
return $q->getResult();
}
}
ale nevim jak to pak pouzit v kodu a zkusim s $this->userRepository pracovat, tak to udela tohle:
$this->userRepository = $this->em->getRepository('App\Models\Entity\User');
Tak me to nevidi mou funkci coz chapu.
$this->userRepository = $this->em->getRepository('App\Models\Repository\User');
haze to Class „App\Models\Repository\User“ sub class of „Kdyby\Doctrine\EntityRepository“ is not a valid entity or mapped super class.
$this->userRepository = $this->em->getRepository('User');
Haze to Metadata of class User was not found, because the class is missing or cannot be autoloaded.
Dik
- leninzprahy
- Člen | 150
Mělo by to být (Entity Manager vytvoří správný repozitář právě
podle anotace repositoryClass="App\Models\Repository\User"
v entitě)
$this->userRepository = $this->em->getRepository('App\Models\Entity\User');
Co ti to vrátí za chybu, když voláš?
$user = $this->userRepository->FindByUsername('nejakeJmeno');
smazal jsi cache?
Editoval leninzprahy (23. 12. 2016 14:19)