Hallo Community,
ich bin nun seit ein paar Tagen dabei eine Testextension zu schreiben, mit der man die fe_users auslesen und im Frontend anzeigen kann.
Die List-View funktioniert soweit auch schon und es werden alle Benutzer angezeigt. Das Problem was ich jetzt habe, liegt darin, dass wenn ich in der Listenansicht einen User auswähle und zur Show-Ansicht wechseln möchte, dann kommt der folgende Fehler.
#1297759968: Exception while property mapping at property path ""😮bject with identity "6" not found.
Mein Code sieht wie folgt aus.
Mein Model
/**
* MyUser
*/
class MyUser extends \TYPO3\CMS\Extbase\Domain\Model\FrontendUser {
}
Mein Repository
/**
* The repository for MyUsers
*/
class MyUserRepository extends \TYPO3\CMS\Extbase\Persistence\Repository {
/**
*
* @param int $pid
* @return
*/
public function findByPid($pid) {
$query = $this->createQuery();
$query->getQuerySettings()->setRespectStoragePage(FALSE);
$query->matching($query->equals('pid',$pid));
$result = $query->execute();
return $result;
}
/**
*
* @param int $uid
* @return
*/
public function findByUid($uid) {
$query = $this->createQuery();
$query->getQuerySettings()->setRespectStoragePage(FALSE);
$query->matching($query->equals('uid',$uid));
$result = $query->execute();
return $result;
}
}
Wie man sieht habe ich hier die Funktionen findByPid und findByUid überschrieben, da ich mit den Standard-Funktionen in der List-View sonst keine Ausgabe erhalten hätte.
Mein Controller
/**
* MyUserController
*/
class MyUserController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
/**
* myUserRepository
*
* @var \TYPO3\CMS\Extbase\Domain\Repository\FrontendUserRepository
* @inject
*/
protected $myUserRepository = NULL;
/**
* action list
*
* @return void
*/
public function listAction() {
$myUsers = $this->myUserRepository->findByPid(36);
$this->view->assign('myUsers', $myUsers);
}
/**
* action show
*
* @param \Xos\XosTester\Domain\Model\MyUser $myUser
* @return void
*/
public function showAction(\Xos\XosTester\Domain\Model\MyUser $myUser) {
$this->view->assign('myUser', $MyUser);
}
}
Meine List-View
<f:layout name="Default" />
<f:section name="main">
<h1>Listing for MyUser</h1>
<f:debug title="Debuginformationen">{myUsers.0}</f:debug>
<f:flashMessages renderMode="div" />
<table class="tx_xostester" >
<tr>
<th> Username </th>
</tr>
<f:for each="{myUsers}" as="myUser">
<tr>
<td><f:link.action action="show" arguments="{myUser : myUser}"> {myUser.username} </f:link.action></td>
</tr>
</f:for>
</table>
</f:section>
Mit dem Debug-Tag erhalte ich auch Informationen zu dem entsprechenden User.
Ich nutze zur Zeit Typo3 Version 6.2.10.
Ich habe gefühlt das halbe Netz durchsucht und nichts gefunden (oder vielleicht habe ich auch einfach falsch gesucht). Hatte jemand von euch dieses Problem schon und konnte es lösen oder hat jemand eine Idee was man da jetzt noch machen könnte?
Vielen Dank schon mal im Voraus
Grüße
Benni