Ich habe im Backend meinen Controller abgebildet welcher unter anderem Bilder ablegt - das funktioniert auch alles - bis auf das speichern von Bilder:
:
"You're trying to decode an invalid JSON String: ↵Fatal error: Uncaught Doctrine\ORM\ORMInvalidArgumentException: Expected value of type "Shopware\Models\Media\Media" for association field "MEINPLUGIN\Models\Bug#$media", got "array" instead. in /var/www/shopware533/vendor/doctrine/orm/lib/Doctrine/ORM/ORMInvalidArgumentException.php:206↵Stack trace:↵#0 /var/www/shopware533/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(844): Doctrine\ORM\ORMInvalidArgumentException::invalidAssociation(Object(Doctrine\ORM\Mapping\ClassMetadata), Array, Array)↵#1 /var/www/shopware533/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(741): Doctrine\ORM\UnitOfWork->computeAssociationChanges(Array, Array)↵#2 /var/www/shopware533/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(803): Doctrine\ORM\UnitOfWork->computeChangeSet(Object(Doctrine\ORM\Mapping\ClassMetadata), Object(MEINPLUGIN\Models\Bug))↵#3 /var/www/shopware533/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(340): Doctrine\ORM\UnitOfWork->computeChangeSets()↵#4 /var/www/shopware533/vendor/doctrine/orm/lib/D in /var/www/shopware533/vendor/doctrine/orm/lib/Doctrine/ORM/ORMInvalidArgumentException.php on line 206↵"
In meinem Model nutze ich:
/**
* @var
* @ORM\OneToOne(targetEntity="Shopware\Models\Media\Media")
* @ORM\JoinColumn(name="media_id", referencedColumnName="id", nullable=true)
*/
protected $media;
/**
* @var int
* @ORM\Column(name="media_id", type="integer", nullable=true)
*/
private $mediaId = null;
/**
* @return Media
*/
public function getMedia()
{
return $this->media;
}
/**
* @param Media $media
*/
public function setMedia($media)
{
$this->media = $media;
}
Wie sehen deine Getter- und Setter-Methoden für $media aus ?
Viele Grüße
Die sind oben mit drin, hier nochmal
/**
* @return Media
*/
public function getMedia()
{
return $this->media;
}
/**
* @param Media $media
*/
public function setMedia($media)
{
$this->media = $media;
}
Ich kann ja keinen setter in das Media Model einbinden. Bin etwas verwirrt.
Ja, das ist richtig. Das kannst du nur bei deinen eigenen Models machen. Daher setzte den letzten Parameter (reference) einfach auf null, bzw. lass‘ ihn weg