我正在编写一个程序来跟踪客户可以订购的帆。我的程序具有以下类结构:
Sail
- mainsail
- jib
- spinnaker
我不确定是否使用 mappedsuperclass 或其他一些学说继承类型来维护程序中的以下类型的关系:
Mainsail extends Sail
我希望数据库本身(mySQL)分别有一个主帆、三角帆和三角帆表。
到目前为止,我的 Co/QuoteBundle/Entity 文件夹中只有一个 Mainsail 实体/类:
namespace Co\QuoteBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* Mainsail
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="Co\QuoteBundle\Entity\MainsailRepository")
*/
class Mainsail
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=100)
*/
private $name;
/**
* @var integer
*
* @ORM\ManyToOne(targetEntity="Boat", inversedBy="mainsails")
* @ORM\JoinColumn(name="boat_id", referencedColumnName="id")
* @Assert\NotBlank()
*/
private $boatType;
/**
* @var float
*
* @ORM\Column(name="build_price", type="decimal")
*/
private $buildPrice;
//other variables, plus doctrine-generated getters and setters
}
最终,我的目标是不必为所有帆类复制相同的函数,这样我就可以将一个帆数组发送到 twig 中,并在适用的情况下将它们全部视为相同类型或不同类型。
{% for sail in sails %}
<p>{{sail.name}} (${{sail.buildPrice}})</p>
{% endfor %}
谢谢!