Symfony 3 easyadmin __toString() не должен вызывать исключение

Я использую EasyAdmin Bundle. Когда я пытаюсь добавить новый элемент в Entity с именем «Company», который имеет отношение «ManyToMany» с сущностью «Service», я получаю сообщение об ошибке:

Error: Method AppBundle\Entity\Service::__toString() must not throw an exception

Но когда я собираюсь добавить новый элемент в объект «Сервис», все работает нормально, и поле с объектами «Компания» отображается правильно.

Я пытался поймать исключение, реализующее этот обходной путь, но он не действует.

Класс обслуживания:

namespace AppBundle\Entity;

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

/**
 * Company
 *
 * @ORM\Table(name="company")
 * @ORM\Entity(repositoryClass="AppBundle\Repository\CompanyRepository")
 */
class Company
{

/**
     * @var
     * 
     * Many Companys have Many Services.
     * @ORM\ManyToMany(targetEntity="Service", inversedBy="companys")
     * @ORM\JoinTable(name="companys_services")
     */
    private $services;

    public function __construct() {
        $this->services = new ArrayCollection();
    }
public function __toString() 
    {
        return $this->name;
    }
}

И класс обслуживания:

namespace AppBundle\Entity;

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

/**
 * Service
 *
 * @ORM\Table(name="service")
 * @ORM\Entity(repositoryClass="AppBundle\Repository\ServiceRepository")
 */
class Service
{
/**
     * Many Services have Many Companys.
     * @ORM\ManyToMany(targetEntity="Company", mappedBy="services")
     */
    private $companys;

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

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

Что случилось?


person AppleandPear    schedule 18.03.2017    source источник
comment
Существует ли право собственности Службы name?   -  person Federkun    schedule 18.03.2017
comment
Я не знаю, что именно Ты имеешь в виду. Я новичок в Symfony.   -  person AppleandPear    schedule 18.03.2017


Ответы (1)


Сообщение об ошибке настолько специфично (Service::__toString() must not throw an exception), что проблема должна заключаться в свойстве $this->name элемента Service. Это определено? Является ли «нормальным» свойством или каким-то расширенным объектом, который терпит неудачу при преобразовании его в строку?

person Javier Eguiluz    schedule 18.03.2017
comment
Хорошо, твой ответ помог мне. У меня есть определенная переменная $serviceName, но в методе __toString() было $this->name. Поменял на $this->serviceName решил проблему. - person AppleandPear; 18.03.2017