関係にあるエンティティのグループから最小日付を表示する必要があります。例えば。ユーザーと契約があります -> ユーザーには多くの契約がありますが、契約の最小日付を表示する必要があります。
コードは次のとおりです。
class User implements UserInterface
{
/**
* @ORM\OneToMany(targetEntity="Comp\ContractBundle\Entity\Contract", mappedBy="user_id")
* @ORM\OrderBy({"id" = "DESC"})
*
*/
private $contracts;
}
class Contract
{
/**
* @var string $datastart
*
* @ORM\Column(name="datastart", type="datetime")
*/
private $datastart;
/**
* @var string $dataend
*
* @ORM\Column(name="dataend", type="datetime")
*/
private $dataend;
/**
* @var integer $user_id
*
* @ORM\ManyToOne(targetEntity="Comp\AuthBundle\Entity\User")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
private $user_id;
}
class UserType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options){
#... other data
$builder->add('contracts','collection', array(
'type' => new ContractType()
) );
}
public function getName()
{
return 'User';
}
public function getDefaultOptions(array $options)
{
return array(
'data_class' => 'Comp\AuthBundle\Entity\User',
);
}
}
そして、ContractType:
class ContractType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options){
$builder->add('name','text');
$builder->add('datastart','datetime');
}
public function getName()
{
return 'Contract';
}
public function getDefaultOptions(array $options)
{
return array(
'data_class' => 'Comp\ContractBundle\Entity\Contract',
);
}
}
問題は、ユーザー エンティティに関連する各エンティティを取得することです。取得する必要があるのは 1 つだけです。良い例を知っていれば、それは素晴らしいことです。