2017-04-07 95 views
-2

所以我的一切設置,但我仍然得到:學說:沒有指定的標識符/主鍵

沒有標識/主要用於實體 指定鍵「Bisna \應用\實體\公司」。每個實體必須有一個 標識符/主鍵。

實體:

<?php 
namespace Bisna\Application\Entity; 
use Doctrine\ORM\Mapping as ORM; 
/** 
* Company 
* 
* @ORM\Table(name="companies") 
* @ORM\Entity 
*/ 
class Company{ 

    /** 
    * @var integer $id 
    * 
    * @ORM\Id 
    * ORM\Column(name="id", type="integer", nullable=false) 
    * @ORM\GeneratedValue(strategy="IDENTITY") 
    */ 
    protected $id; 

    /** 
    * @var string $industry 
    * 
    * @ORM\ManyToOne(targetEntity="CompanyIndustry", inversedBy="company_industry") 
    * @ORM\JoinColumn(name="industry_id", referencedColumnName="id", nullable=false) 
    */ 
    protected $industry; 

    /** 
    * @var string $billingAddress 
    * 
    * @ORM\ManyToOne(targetEntity="BillingAddress", inversedBy="billing_addresses") 
    * @ORM\JoinColumn(name="billing_address_id", referencedColumnName="id", nullable=false) 
    */ 
    protected $billingAddress; 

    /** 
    * @var string $companyName 
    * 
    * @ORM\Column(name="companyName", type="string", length=255, nullable=false) 
    */ 
    protected $companyName; 

    /** 
    * @var string $website 
    * 
    * @ORM\Column(name="website", type="string", length=255, nullable=true) 
    */ 
    protected $website; 

    /** 
    * @var string $address 
    * 
    * @ORM\Column(name="address", type="string", length=255, nullable=true) 
    */ 
    protected $address; 

    /** 
    * @var string $employeesNumber 
    * 
    * @ORM\Column(name="employees_number", type="string", length=255, nullable=true) 
    */ 
    protected $employeesNumber; 

    /** 
    * @var string $streetNumber 
    * 
    * @ORM\Column(name="street_number", type="string", length=255, nullable=true) 
    */ 
    protected $streetNumber; 

    /** 
    * @var string $street 
    * 
    * @ORM\Column(name="street", type="string", length=255, nullable=true) 
    */ 
    protected $street; 

    /** 
    * @var string $city 
    * 
    * @ORM\Column(name="city", type="string", length=255, nullable=false) 
    */ 
    protected $city; 

    /** 
    * @var string $cityVarname 
    * 
    * @ORM\Column(name="city_varname", type="string", length=255, nullable=true) 
    */ 
    protected $cityVarname; 

    /** 
    * @var string $state 
    * 
    * @ORM\Column(name="state", type="string", length=255, nullable=true) 
    */ 
    protected $state; 

    /** 
    * @var string $stateVarname 
    * 
    * @ORM\Column(name="state_varname", type="string", length=255, nullable=true) 
    */ 
    protected $stateVarname; 

    /** 
    * @var string $stateCode 
    * 
    * @ORM\Column(name="state_code", type="string", length=255, nullable=true) 
    */ 
    protected $stateCode; 

    /** 
    * @var string $postalCode 
    * 
    * @ORM\Column(name="postal_code", type="string", length=255, nullable=true) 
    */ 
    protected $postalCode; 

    /** 
    * @var string $country 
    * 
    * @ORM\Column(name="country", type="string", length=255, nullable=true) 
    */ 
    protected $country; 

    /** 
    * @var string $countryVarname 
    * 
    * @ORM\Column(name="country_varname", type="string", length=255, nullable=true) 
    */ 
    protected $countryVarname; 

    /** 
    * @var string $countryCode 
    * 
    * @ORM\Column(name="country_code", type="string", length=255, nullable=true) 
    */ 
    protected $countryCode; 

    /** 
    * @var string $latitude 
    * 
    * @ORM\Column(name="latitude", type="string", length=255, nullable=true) 
    */ 
    protected $latitude; 

    /** 
    * @var string $longitude 
    * 
    * @ORM\Column(name="longitude", type="string", length=255, nullable=true) 
    */ 
    protected $longitude; 

    /** 
    * @var string $email 
    * 
    * @ORM\Column(name="email", type="string", length=255, nullable=true) 
    */ 
    protected $email; 

    /** 
    * @var string $password 
    * 
    * @ORM\Column(name="password", type="string", length=255, nullable=true) 
    */ 
    protected $password; 

    /** 
    * @var string $firstname 
    * 
    * @ORM\Column(name="firstName", type="string", length=255, nullable=false) 
    */ 
    protected $firstname; 

    /** 
    * @var string $lastname 
    * 
    * @ORM\Column(name="lastName", type="string", length=255, nullable=false) 
    */ 
    protected $lastname; 

    /** 
    * @var Collection $jobs 
    * 
    * @ORM\OneToMany(targetEntity="CompanyJob", mappedBy="company", cascade={"persist", "remove"}) 
    * @ORM\OrderBy({"created" = "ASC"}) 
    */ 
    protected $jobs; 

    /** 
    * @var string $activationCode 
    * 
    * @ORM\Column(name="activationCode", type="string", length=255, nullable=true) 
    */ 
    protected $activationCode; 

    /** 
    * @var string $resetPasswordCode 
    * 
    * @ORM\Column(name="resetPasswordCode", type="string", length=255, nullable=true) 
    */ 
    protected $resetPasswordCode; 

    /** 
    * @var string $status ['activation', 'active', 'inactive'] 
    * 
    * @ORM\Column(name="status", type="string", length=255, nullable=false) 
    */ 
    protected $status; 

    /** 
    * @var datetime $created 
    * 
    * @ORM\Column(name="created", type="datetime", nullable=false) 
    */ 
    protected $created; 

    /* .... */ 
} 

我還沒有做出的表呢,不過,我仍然不明白爲什麼我得到這個錯誤,因爲我所擁有的一切。有任何想法嗎?

回答

0

也許是因爲你錯過了@之前@ORM\Column註釋爲$id屬性?

你應該考慮使用Yaml原則映射。這是將實體與數據庫列定義分開的好方法。此外,您的IDE應該驗證Yaml內容,但它可能不會驗證PHP註釋爲PHP代碼。

+0

NOP :(仍然無法正常工作 – Uffo

+2

確保在添加@回來後清除緩存 – Cerad

+0

$ cacheDriver =新\原則\ COMMON \緩存\ ArrayCache(); $ cacheDriver-> deleteAll();我已經嘗試過這樣但沒有運氣,我會嘗試創建表格... – Uffo