Problém s DI, nepředává parametr

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

Zdravím, mám UserPresenter.php v tomto tvaru:

<?php
    /** @var Users */
    protected $userList;
    /** @var Contacts */
    protected $contactList;

    public function injectUsers(Users $u)
    {
      $this->userList = $u;
    }

    public function injectContacts(Contacts $c)
    {
      $this->contactList = $c;
    }

    ...

    public function renderList()
    {
      $this->template->users = array();
      $usercount=0;
      $ul = $this->userList;

      foreach($ul->findAll() as $user)
      {
        $this->template->users[] = $user;
        $usercount++;
      }

      $this->template->usercount = $usercount;
    }
?>

Tento kód mi vyhodí Recoverable Error – Argument 2 passed to Database\Selection::__construct() must implement interface Database\IModelManager, null given, called in …/Fabik/Database/Table.php (používám databázovou vrstvu Fabik\Database)

Přitom ve stejném presenteru je o kus níž

<?php
    public function registerFormSubmitted($form)
    {
      $v = $form->getValues();

      $id = $this->contactList->addContact($v);
      $this->userList->addUser($v->password, $id);

      $this->flashMessage('Registrace proběhla úspěšně.', 'success');
      $this->redirect('User:login');
    }
?>

A tady mám k oboum injectovaným třídám 100% přístup… Vůbec to nechápu, nevíte čím to je?

Editoval greeny (20. 10. 2012 3:57)

greeny
Člen | 405
+
0
-

Ještě uvedu, že Nette Debug Bar hlásí pro objekt userList manager protected ⇒ NULL ale pro contactList už je to manager protected ⇒ Database\ModelManager(2)

Filip Procházka
Moderator | 4668
+
0
-

Presenter je v pořádku, špatně to konfiguruješ. Ukaž co máš v sekcích services a v nette v neonu?

greeny
Člen | 405
+
0
-

Už jsem na to přišel, omylem jsem přepsal konstruktor :D i tak díky za zájem