学说:没有为指定的 identifier/primary 键
Doctrine: No identifier/primary key specified for
所以我已经设置好了所有内容,但我仍然得到:
No identifier/primary key specified for Entity
"Bisna\Application\Entity\Company". Every Entity must have an
identifier/primary key.
实体:
<?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;
/* .... */
}
我还没有制作表格,但我仍然不明白为什么我会收到这个错误,因为我什么都有。有什么想法吗?
可能是因为您在 $id
属性 的 @ORM\Column
注释之前错过了 @
?
您应该考虑使用 Yaml 原则映射。这是将实体与数据库列定义分开的好方法。此外,您的 IDE 应该验证 Yaml 内容,而它可能不会将 PHP 评论验证为 PHP 代码。
所以我已经设置好了所有内容,但我仍然得到:
No identifier/primary key specified for Entity "Bisna\Application\Entity\Company". Every Entity must have an identifier/primary key.
实体:
<?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;
/* .... */
}
我还没有制作表格,但我仍然不明白为什么我会收到这个错误,因为我什么都有。有什么想法吗?
可能是因为您在 $id
属性 的 @ORM\Column
注释之前错过了 @
?
您应该考虑使用 Yaml 原则映射。这是将实体与数据库列定义分开的好方法。此外,您的 IDE 应该验证 Yaml 内容,而它可能不会将 PHP 评论验证为 PHP 代码。