顧客が注文できる帆を追跡するプログラムを書いています。私のプログラムには、次のクラス構造があります。
Sail
- mainsail
- jib
- spinnaker
プログラム内で次のタイプの関係を維持するために、マップされたスーパークラスまたは他のドクトリン継承タイプを使用するかどうかはわかりません。
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 %}
ありがとう!