extbase repository findAll() liefert das Ergebnis null
Habe ich mehrere Controller Beispiel: CategoryController und NewsController
Sowie die domain-models für den Kategorie-und news und reposirtories für beide.
In der NewsController ich ein dependencyInjection (der gleichen Weise wie in categoryController):
/**
* categoryRepository
*
* @var Tx_MyExtension_Domain_Repository_CategoryRepository
*/
protected $categoryRepository;
/**
* injectCategoryRepository
*
* @param Tx_MyExtension_Domain_Repository_CategoryRepository $CategoryRepository
* @return void
*/
public function injectCategoryRepository(Tx_MyExtension_Domain_Repository_CategoryRepository $categoryRepository) {
$this->categoryRepository = $categoryRepository;
}
Wenn ich versuche jetzt in einer Funktion, die so etwas wie dieses:
/**
* action getCategoriesAjax
*
* @param Tx_MyExtension_Domain_Model_News
* @return void
*/
public function getCategoriesAjaxAction() {
$categories = $this->categoryRepository->findAll();
$this->view->assign('categories',$categories);
}
Bekomme ich ein leeres Ergebnis zurück.
Das merkwürdige für mich ist, dass ich, wenn ich das hier mache, im CategoryController, die gleiche Funktion funktioniert wie Charme und gibt alle Elemente in der Datenbank und noch seltsamer für mich ist, dass wenn ich ein $this->categoryRepository->findByUid(1) bekomme ich das richtige element als Ergebnis.
Habe ich auch Hinzugefügt, um meine categoryRepository eine test-Funktion:
public function test(){
$query = $this->createQuery();
$result = $query->execute();
$amount = $result.count();
}
Wenn ich diese Funktion aufrufen, von categoryController, bekomme ich wieder die korrekte Menge von Elementen. Wenn ich rufe diese aus meiner newsController bekomme ich "0" zurück...
Ich verstehe es nicht...
Was vermisse ich???
Wo ist mein Fehler?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser hat nervte mich seit Tagen (oder Wochen). Die StoragePid (der Verweis auf die Seite, wo die Elemente befestigt sind) nicht machen, um die Datenbank-Abfrage, wenn Sie don ' T definieren Sie die folgenden irgendwo in deinem TypoScript:
Diese in deine Page-TS und die findAll-Methode aus Tx_Extbase_Persistence_Repository sollte fein arbeiten.
Wochen.
Oder Sie zwingen könnte-Repository zu ignorieren Lagerung Seite:
Ab jetzt auf Ihrem Repository-pull-jeder Datensatz aus der Datenbank.
Sind Sie sicher, dass der Rückgabewert von findAll() ist NULL?
Könnte es sein, dass Ihr Dependency Injection nicht funktioniert. Anschließend wird die Ausnahme sollte so etwas wie dieses:
Auch in Ihrem injectCategoryRepository schreiben Sie
$categoryRepository
im lowerCamelCase und in den Anmerkungen in UpperCamelCase$CategoryRepository
Hoffe, das hilft..
Wie Hendrik schon sagte, Sie können es in Ihrem page-TS.
Eine andere Lösung ist: in dir WERDEN, Bearbeiten Sie den Inhalt Ihrer Seiten enthält das plugin, wählen Sie die Sys Ordner, in dem Ihre db-Elemente gespeichert werden. Diese finden Sie unter der Registerkarte "Verhalten" für Typo3 v6.1