Zum Inhalt springen

Call to a member function findAll()

Erstellt am 5. August 2011 · 5 Antworten · letzte Antwort am 31. Juli 2017

Tags: Fluid, Frage

shooby ·

Hallo Comunity,

ich habe ein Projekt mit Extbase aufgesetzt und habe ein Objekt (Department), das Aggregate Root ist und ein Entity. Über ein Fluid Formular habe ich auch neue Objekte anlegen können, die nun auch in der DB gespeichert wurden.

Dieses Objekt steht in Relation zu einem Anderen (Audit).

Wie kann ich nun ein neues Audit anlegen und per f:form.select die angelegten Department Objekte anzeigen lassen?

View:

<f:form.select property="department" options="{departments}" optionLabelField="name"><select><option>dummy</option></select></f:form.select>

Controller:

public function newAction(Tx_Kmaudit_Domain_Model_Audit $newAudit = NULL) {
		        if ($newAudit == NULL) { // workaround for fluid bug ##5636
		            $newAudit = t3lib_div::makeInstance('Tx_Kmaudit_Domain_Model_Audit');
		        }
                        $departments = $this->departmentRepository->findAll();
                        $this->view->assign('departments', $departments);
		        $this->view->assign('newAudit', $newAudit);
	}

Leider bekomme ich nun einen Fehler ausgegeben, wenn ich die View lade:
Fatal error: Call to a member function findAll() on a non-object in C:\xampp\htdocs\kmaudit\typo3conf\ext\kmaudit\Classes\Controller\AuditController.php on line 65

Ich versteht nicht ganz warum. Ein Objekt Audit kann ich ohne Probleme in die View übergeben.

Hat jemand Ideen?

Danke!! #angry#

drauscher ·

hallo shooby,

Da du das departmentRepository im ActionController aufruft, musst Du natürlich auch instanziieren.

Gruss Dirk

shooby ·

hallo Dirk,

sowat hatte ich auch vermutet 😃 . Nur, was muss ich denn genau, wie instanziieren? Das Rep von Department? Oder den Controller? Oder das Objekt? Ich weiß, das sind Anfängerfehler/fragen, aber deswegen poste ich das auch in diesem Forum 🙂

Danke schon mal

Gruß Matthias

shooby ·

habs!!

$departmentRepo = new Tx_Kmaudit_Domain_Repository_DepartmentRepository();
$departments = $departmentRepo->findAll();
$this->view->assign('departments', $departments);

Danke, Dirk!

Sebastian Schmal ·

wenn ich mit dem Extension_Builder eine simple List/Show PlugIn Extension erstelle, dann erhalte ich den Fehler auch:
Call to a member function findAll() on null

Error thrown in file
/html/typo3/typo3conf/ext/reference/Classes/Controller/ReferenceController.php in line 27.

public function listAction()
{
$references = $this->referenceRepository->findAll();
$this->view->assign('references', $references);
}