---
title: "Repository ist null"
url: "https://www.typo3.net/d/125522-repository-ist-null"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Extbase","Frage","TYPO3 7"]
created: "2016-12-24"
last_reply: "2016-12-27"
replies: 2
solved: false
page: 1
pages: 1
lang: "de"
---

# Repository ist null

Extensions › Entwicklung · 2 Antworten · gestartet 2016-12-24

## Eröffnungsbeitrag

**getit** · 2016-12-24 · [Beitrag #1](https://www.typo3.net/d/125522-repository-ist-null/1)

Ich bekomme das Repository nicht.
Ich habe vor langer Zeit einen Artikel (Mapping von Tabellen - So klappts) geschrieben, und wollte das jetzt wieder ausprobieren.

Bekomme aber nur die Fehlermeldung:
Uncaught TYPO3 Exception
Argument 2 passed to Pluswerk\Simpleblog\Controller\BlogController::injectRepositories() must be an instance of Pluswerk\Simpleblog\Domain\Repository\PageRepository, none given, called in C:\xampp\htdocs\downloads\typo3_src-7.6.14\typo3\sysext\extbase\Classes\Object\Container\Container.php on line 234

TypeError thrown in file
C:\xampp\htdocs\typo3site\typo3conf\ext\simpleblog\Classes\Controller\BlogController.php in line 24.

Warum??

Meine setup.txt (nur der Teil fürs mapping):

```typoscript
plugin.tx_simpleblog {
  persistence {
    storagePid = 1
    classes {
      Pluswerk\Simpleblog\Domain\Model\Page {
        mapping {
          tableName = pages
        }
      }
    }
  }
}
```

Das Respository:
<?php
namespace Pluswerk\Simpleblog\Domain\Repository;

/**
 * The repository for Pages *
 * @package Pluwerk\Simpleblog\Domain\Repository
 */
class PageRepository extends \TYPO3\CMS\Extbase\Persistence\Repository {

}

und das Model:
<?php
namespace Pluswerk\Simpleblog\Domain\Model;

/**
 * Class Page
 * @package Pluswerk\Simpleblog\Domain\Model
 */
class Page extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity {

/**
   * title
   *
   * @var string
   */
  protected $title;

/**
   * Returns the title
   *
   * @return string $title
   */
  public function getTitle() {
    return $this->title;
  }
}

im Controller:
<?php
namespace Pluswerk\Simpleblog\Controller;

use Pluswerk\Simpleblog\Domain\Model\Blog;
use Pluswerk\Simpleblog\Domain\Repository\BlogRepository;
use Pluswerk\Simpleblog\Domain\Repository\PageRepository;
use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;

class BlogController extends ActionController {
  /**
   * @var BlogRepository
   */
  protected $blogRepository;

/**
   * @var PageRepository
   */
  protected $pageRepository;

/**
   * @param BlogRepository $blogRepository
   * @param PageRepository $pageRepository
   */
  public function injectRepositories(BlogRepository $blogRepository, PageRepository $pageRepository) { //<--Zeile 24
    $this->blogRepository = $blogRepository;
    $this->pageRepository = $pageRepository;
  }

/**
   * @param string $search
   */
  public function listAction($search = '') {

$this->view->assign('blogs', $this->blogRepository->findSeachForm($search));
    $this->view->assign('search', $search);
  }
}

Ich habe alle Dateien mehrfach kontrolliert, alle Caches gelöscht, die Extension mal deinstalliert und neu installiert - nix hat geholfen.

Was mache ich falsch??

## Antworten

### [#2](https://www.typo3.net/d/125522-repository-ist-null/2) · getit · 2016-12-24

:):) Konnte das jetzt durch viel Probieren selber lösen !!! :):)

Das Hauptproblem scheint die Methode

```php
public function injectRepositories(...)
```

gewesen zu sein.

Scheinbar kann man pro inject-Methode nur eine Parameter übergeben.

Das funktioniert (im Controller):

```php
  /**
   * @var BlogRepository
   */
  protected $blogRepository;

  /**
   * @var PageRepository
   */
  protected $pageRepository;

  /**
   * @param BlogRepository $blogRepository
   */
  public function injectBlogRepository(BlogRepository $blogRepository) {
    $this->blogRepository = $blogRepository;
  }

  /**
   * @param PageRepository $pageRepository
   */
  public function injectPageRepository(PageRepository $pageRepository) {
    $this->pageRepository = $pageRepository;
  }
```

und die setup.txt hab ich noch etwas erweitert:

```php
plugin.tx_simpleblog {
  persistence {
    storagePid = 0
		storagePid.recursive = 99
    classes {
      Pluswerk\Simpleblog\Domain\Model\Page {
        mapping {
          tableName = pages
        }
      }
    }
  }
  persistence {
    storagePid = 0
    classes {
      Pluswerk\Simpleblog\Domain\Model\Blog {
        mapping {
          tableName = tx_simpleblog_domain_model_blog
        }
      }
    }
  }
}
```

### [#3](https://www.typo3.net/d/125522-repository-ist-null/3) · pstranghoener · 2016-12-27

Vielen Dank dass du die Lösung gepostet hast! Ich markiere deine Frage mal als gelöst, damit alle anderen Mitglieder wissen, dass sie hier Antworten finden, ja? :)

---

Quelle: „Repository ist null“, typo3.net, https://www.typo3.net/d/125522-repository-ist-null
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
