@symnoob

Как правильно вылечить эту ошибку: could not be converted to string?

Всем Привет,

генерировал ManyToMany и создал CRUD, но почемуто выдаёт ошибку:
Catchable Fatal Error: Object of class App\Entity\Account could not be converted to string


вот два Entity:

<?php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass="App\Repository\AccountRepository")
 */
class Account
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $benutzer;

    public function getId(): ?int
    {
        return $this->id;
    }

    public function getBenutzer(): ?string
    {
        return $this->benutzer;
    }

    public function setBenutzer(string $benutzer): self
    {
        $this->benutzer = $benutzer;

        return $this;
    }


    public function __toString(){
        // to show the name of the Category in the select
        return $this->benutzer;
    }

}


<?php

namespace App\Entity;

use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass="App\Repository\MenschenRepository")
 */
class Menschen
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\ManyToMany(targetEntity="App\Entity\Account")
     */
    private $account;

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $vorname;

    public function __construct()
    {
        $this->account = new ArrayCollection();
    }

    public function getId(): ?int
    {
        return $this->id;
    }

    /**
     * @return Collection|Account[]
     */
    public function getAccount(): Collection
    {
        return $this->account;
    }

    public function addAccount(Account $account): self
    {
        if (!$this->account->contains($account)) {
            $this->account[] = $account;
        }

        return $this;
    }

    public function removeAccount(Account $account): self
    {
        if ($this->account->contains($account)) {
            $this->account->removeElement($account);
        }

        return $this;
    }

    public function getVorname(): ?string
    {
        return $this->vorname;
    }

    public function setVorname(string $vorname): self
    {
        $this->vorname = $vorname;

        return $this;
    }
}


даже нашёл решение, но я думаю оно не правильное:
Если вставить этот код в Entity Account, то тогда всё норм. но это тупой подход, должно быть другое решение!

public function __toString(){
        return $this->benutzer;
    }

Заранее Благодарен!
  • Вопрос задан
  • 5144 просмотра
Пригласить эксперта
Ответы на вопрос 1
Austin_Powers
@Austin_Powers
Web developer (Symfony, Go, Vue.js)
Определить метод __toString это нормальное решение.
Эта ошибка
Catchable Fatal Error: Object of class App\Entity\Account could not be converted to string
, где бы она ни была, и говорит о том, что объект не может быть приведен к строке.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы