Object of class (třída) could not be converted to string
- grovik
- Člen | 73
Kde je problém:
Ukládám nějaká data o zvířeti. K tomu mám nějaký počet fotek.
Ty chci ke zvířeti přiřadit.
Pokud je to editace je to v pohodě.
Pokud je to nové zvíře, musím ho nejprve persistnout (tak praví rady a
porady Doctriny), použít a pak flushnout
Jenže to padá na tu chybu.
$animal = New Animal();
$azyl = $this->azylRepository->findById($this->getPresenter()->getUser()->getIdentity()->getData()['Azyl']->getId());
$animal->setAzyl($azyl);
$animal->setIsDeleted(false);
$animal->setAdopted(false);
$animal->setToAdoption($values->toAdoption);
$animal->setName($values->name);
$animal->setDescription($values->description);
$animal->setSpecies($this->speciesRepository->findOneById($values->species));
$animal->setBirthDate($values->birthDate);
$animal->setBreed($values->breed);
$this->animalsRepository->persist($animal); //TADY
foreach ($values->photos as $photo)
{
$photoUpload = New Photo();
$photoUpload->setAzyl($azyl);
$photoUpload->setDate(new DateTimeImmutable('now'));
$photoUpload->setAnimal($animal); //A TADY
$photoUpload->uploadAzylPhoto($photo);
$this->photosRepository->save($photoUpload);
}
$this->animalsRepository->flush($animal);
$this->flashMessage('Zvířátko bylo úspěšně přidáno.', 'alert-success');
- Šaman
- Člen | 2666
Bez podrobností těžko radit, ale od boku bych tipoval na:
$animal->setSpecies($this->speciesRepository->findOneById($values->species));
resp. na to, že
$this->speciesRepository->findOneById($values->species)
vrátí objekt, ale v databázi to zkusí species
uložit jako
string. Pokud ano, řešením by bylo do metody setSpecies()
předat string.