Zum Inhalt springen

Extbase fe_users auslesen klappt nicht?

Erstellt am 12. Januar 2011 · 27 Antworten · letzte Antwort am 19. Oktober 2012 · Seite 2 von 2

Tags: Frontend-Benutzer, Frage

Eydamos ·

Ne das beste ist es auf jeden Fall nicht. Das hat schon alles seinen Sinn. Und wie gesagt bei mir läuft alles problemlos ich musste nur die setup.txt ändern und fertig. Also hast du irgendwo einen Fehler gemacht.

Zip mal deinen aktuellen stand oder mach ne t3x und schick sie mir mal. Ich bin mir sicher ich find den Fehler wenn ich das im Gesmatbild sehe.

oliver_g ·

Hi, die ExtDebug Extension funktioniert nicht. Es erscheint:

Fatal error: Call to undefined method Tx_Extbase_Reflection_PropertyReflection::setAccessible() in /home/oliver/Entwicklung/PHPLocal/typo3/typo3conf/ext/ext_debug/Classes/Error/Debugger.php on line 155

Wäre natürlich witzlos, wenn die jetzt nur ab PHP 5.3 geht...

oliver_g ·

Ich glaub ich spinn.

Jetzt liefert mir mein ObjectRepository bei einer simplen Anfrage auch nur eine Id des gefundenen Datensatzes zurück. Es scheitert am Aufbau des zugehörigen Domain Objects. Also z.B.:

/**
	 * 
	 * Searches an object or more by a part of a name
	 * @param string $name
	 * 
	 * @return Tx_Extbase_Persistence_QueryResult
	 */
	public function findByPartialName( $name ) {
		$query = $this->createQuery();
		$query->getQuerySettings()->setRespectStoragePage(FALSE);
			
		$query->matching(
				$query->equals('first_name', $name)
				
			
		);
		
		return $query->execute();
	}

Hat jemand schon mal dieses Problem gehabt?

oliver_g ·

Ich nehm meinen vorherigen Post zurück. War mein Fehler.

Ich muss auf bei einem Ergebnis, einen Indexzugriff machen, also z.B.:

$q = $query->execute();

return $q[0];

Solche Fehlerchen passieren häufig, wenn man mit einer (scheinbar) typenlosen Sprache arbeitet, und die IDE keine sauberen Vorgabe bzgl. Typen der Parameter und Rückgabewerte macht.

Gruß

Eydamos ·
oliver_g schrieb

Hi, die ExtDebug Extension funktioniert nicht. Es erscheint:

Fatal error: Call to undefined method Tx_Extbase_Reflection_PropertyReflection::setAccessible() in /home/oliver/Entwicklung/PHPLocal/typo3/typo3conf/ext/ext_debug/Classes/Error/Debugger.php on line 155

Wäre natürlich witzlos, wenn die jetzt nur ab PHP 5.3 geht...

Ja das kann gut sein, da ich schon ne halbe ewigkeit auf PHP 5.3 arbeite fällt mir sowas nicht auf.

oliver_g schrieb

Ich nehm meinen vorherigen Post zurück. War mein Fehler.

Ich muss auf bei einem Ergebnis, einen Indexzugriff machen, also z.B.:

$q = $query->execute();

return $q[0];

Solche Fehlerchen passieren häufig, wenn man mit einer (scheinbar) typenlosen Sprache arbeitet, und die IDE keine sauberen Vorgabe bzgl. Typen der Parameter und Rückgabewerte macht.

Gruß

sofern du keine findOneByProperty() Funktion nutzt bekommst du immer ein ObjektStorage zurück selbst wenn keine oder nur ein Datensatz gefunden wurde.
Willst du immer nur den ersten Datensatz erhalten mach einfach:

return $query->execute()->getFirst();
oliver_g ·

Jo, wahrscheinlich war das auch das "Problem" bei dem Auslesen der BackendUser.
Das Wissen rund um Extbase läppert sich so allmählich zusammen ;-)

Gruß

bberger ·

Ich habs noch nicht ganz begriffen.. was bringt mir dieser recordType und warum funktioniert meine Extension und liefert mir meine Objekte zurück wenn ich diesen auskommentiere, bzw. macht garnix mehr wenn ich den setze?

Ich meine, ich verstehe schon, dass extbase dann nach dem type sucht - aber was bringt mir das aus Entwicklersicht? Also aus welchem Grund möchte ich diese Einschränkung?!

kainobi ·
bberger schrieb

Ich meine, ich verstehe schon, dass extbase dann nach dem type sucht - aber was bringt mir das aus Entwicklersicht? Also aus welchem Grund möchte ich diese Einschränkung?!

Soweit ich weiß, wurde das eingeführt um "Single Table Inheritance" zu ermöglichen. Hab mich aber auch schon extrem daran gestört, weil das einige Sachen sehr umständlich macht. Man findet leider auch nirgendwo so richtig detaillierte Infos darüber...

Edit: siehe z.B. auch hier: #111471