Doctrine repositry + inject type hint nefunguje

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
David Ďurika
Člen | 328
+
0
-

Zdravim, neviem ci mam vlka ale kde je problem ale:
config:

<?php
	services:
		model: @doctrine.entityManagers.default
		roleRepository: @model::getRepository('Entity\User\Role')
?>

ked si v presentery dam dump

<?php
d($this->context->roleRepository);
?>

tak je setko OK http://grab.by/gwMy

ale ked do presentra vlozim:

<?php
	protected $roleRepository;

	public function injectRepositories(R\RoleRepository $r) {
		if ($this->roleRepository) {
			throw new Nette\InvalidStateException('Repositry has already been set');
		}
		$this->roleRepository = $r;
	}

?>

tak mi to hodi ladenku s:
No service of type Repository\RoleRepository found. Make sure the type hint in Method AdminModule\AclPresenter::injectRepositories() is written correctly and service of this type is registered

mkoubik
Člen | 728
+
0
-

DIC nemá jak zjistit, že EntityManager::getRepository() vrací typ R\RoleRepository.

Filip Procházka
Moderator | 4668
+
0
-
	services:
		model: @doctrine.entityManagers.default
		roleRepository:
			class: R\RoleRepository
			factory: @model::getRepository('Entity\User\Role')

Takhle už to bude fungovat

A možná by tě mohlo zajímat tohle

Editoval HosipLan (5. 10. 2012 7:47)