TYPO3 Exception 1234386924

Note

Below, the TYPO3 community may have provided additional information or solutions for this exception. However, these may or may not apply to your particular case. If you can provide more information, you should come back here and add your experience and solution steps to this issue once you have resolved it.

General TYPO3 troubleshooting tips can be found in the section "Troubleshooting" of the menu, and live support is available in the TYPO3 Slack channel #typo3-cms. (See How to get your TYPO3 Slack account.)

To add your experience, click "Edit on GitHub" above and follow the "Edit on GitHub" workflow. Also check out our tip on Coding Style and reST.

Error-messages:

  1. #1234386924: Cannot create empty instance of the class "TYPO3CMSExtbaseDomainRepositoryFrontendUserRepository" because it does not implement the TYPO3CMSExtbaseDomainObjectDomainObjectInterface.

  2. #1234386924: Cannot create empty instance of the class "TYPO3CMSExtbasePersistenceObjectStorage" because it does not implement the TYPO3CMSExtbaseDomainObjectDomainObjectInterface.

Fix

Assure that all classes in your model files are defined and annotated correctly.

Below is an example for one property of another table:

/**
  * contact
  *
  * @var \Vendor\Extension\Domain\Model\Contact
  */
 protected $contact = NULL;


 /**
  * Returns the contact
  *
  * @return \Vendor\Extension\Domain\Model\Contact $contact
  */
 public function getContact() {
     return $this->contact;
 }

 /**
  * Sets the contact
  *
  * @param \Vendor\Extension\Domain\Model\Contact $contact
  * @return void
  */
 public function setContact(\Vendor\Extension\Domain\Model\Contact $contact) {
     $this->contact = $contact;
 }

A more complicated example is when records or files are handled by ObjectStorage, this is an Object where several items can be stored and items can be added and removed from a stack:

/**
 * member
 *
 * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\Vendor\Extension\Domain\Model\Member>
 */
 protected $member = NULL;

/**
 * __construct
 */
public function __construct() {
    //Do not remove the next line: It would break the functionality
    $this->initStorageObjects();
}

/**
 * Initializes all ObjectStorage properties
 * Do not modify this method!
 * It will be rewritten on each save in the extension builder
 * You may modify the constructor of this class instead
 *
 * @return void
 */
protected function initStorageObjects() {
    $this->member = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
}

/**
 * Adds a member
 *
 * @param \Vendor\Extension\Domain\Model\Member $member
 * @return void
 */
public function addMember(\Vendor\Extension\Domain\Model\Member $member) {
    $this->member->attach($member);
}

/**
 * Removes a member
 *
 * @param $memberToRemove The member to be removed
 * @return void
 */
public function removeMember(\Vendor\Extension\Domain\Model\Member $memberToRemove) {
    $this->member->detach($memberToRemove);
}

/**
 * Returns the member
 *
 * @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\Vendor\Extension\Domain\Model\Member> $member
 */
public function getMember() {
    return $this->member;
}

/**
 * Sets the member
 *
 * @param \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\Vendor\Extension\Domain\Model\Member> $member
 * @return void
 */
public function setMember(\TYPO3\CMS\Extbase\Persistence\ObjectStorage $member) {
    $this->member = $member;
}