具有CRUD的Symfony2实体

时间:2015-12-12 11:59:53

标签: php symfony doctrine-orm crud

我有两个实体:

档案公司.php

<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;

/**
 * @ORM\Entity
 * @ORM\Table(name="Company")
 */

class Company
{
        /**
        * @ORM\Column(type="integer")
        * @ORM\Id
        * @ORM\GeneratedValue(strategy="AUTO")
        */
        protected $id;

        /** @ORM\Column(type="string", length=100) */
        protected $name;

        /** @ORM\Column(type="integer") */
        protected $bulstat;

        /** @ORM\Column(type="string", length=100) */
        protected $city;

        /** @ORM\Column(type="string", length=50) */
        protected $email;

        /** @ORM\Column(type="string", length=50) */
        protected $contact_person;

        /** @ORM\Column(type="string", length=50) */
        protected $telephone;
}
?>

档案Employer.php

<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;

/**
 * @ORM\Entity
 * @ORM\Table(name="Employer")
 */

class Employer
{
        /**
        * @ORM\Column(type="integer")
        * @ORM\Id
        * @ORM\GeneratedValue(strategy="AUTO")
        */
        protected $id;

        /** @ORM\Column(type="string", length=100) */
        protected $name;

        /** @ORM\Column(type="string", length=100) */
        protected $position;

        /**
        * @ORM\ManyToMany(targetEntity="Company")
        * @ORM\JoinTable(name="employer2companies",
        *       joinColumns={@ORM\JoinColumn(name="employer_id", referencedColumnName="id")},
        *       inverseJoinColumns={@ORM\JoinColumn(name="company_id", referencedColumnName="id", unique=true)}
        *       )
        */

        private $companies;

        public function __construct() {
                $this->companies = new \Doctrine\Common\Collections\ArrayCollection();
        }

}
?>

一切似乎都是正确的:

php console doctrine:generate:entities AppBundle:
Generating entities for bundle "AppBundle"
  > backing up Company.php to Company.php~
  > generating AppBundle\Entity\Company
  > backing up Employer.php to Employer.php~
  > generating AppBundle\Entity\Employer

php console doctrine:schema:update --force:
Updating database schema...
Database schema updated successfully! "5" queries were executed

在此之后,我正在为AppBundle:Company和AppBundle:Employer成功生成CRUD!

我可以从CRUD界面成功创建新公司,但是当我尝试创建新的雇主时,我在http://xxxxx.com/admin/employer/new收到此错误:

Oops! An Error Occurred
The server returned a "500 Internal Server Error".
Something is broken. Please let us know what you were doing when thiserror occurred. We will fix it as soon as possible. Sorry for any inconvenience caused. 

以下是例外:

Catchable Fatal Error: Object of class AppBundle\Entity\Company could not be converted to string 

1 个答案:

答案 0 :(得分:1)

只需向您的班级__toString()添加AppBundle\Entity\Company方法。

此致,亚历山大