我有一个Task实体,其中包含具有代码和描述属性的任务列表:
/**
* Task
*
* @ORM\Table(name="tasks")
* @ORM\Entity(repositoryClass="Foo\BarBundle\Entity\TaskRepository")
*/
class Task
{
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(name="code", type="string", length=50)
*/
private $code;
/**
* @ORM\Column(name="description", type="string", length=255)
*/
private $description;
// ...
}
我希望我的用户每周都能输入他们传递每项任务的时间。我认为最好是使用Activity
属性创建另一个实体task
:
/**
* Activity
*
* @ORM\Table(name="activities")
* @ORM\Entity(repositoryClass="Foo\BarBundle\Entity\ActivityRepository")
*/
class Activity
{
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(name="date", type="datetime")
*/
private $date;
/**
* @ORM\Column(name="duration", type="smallint")
*/
private $duration;
/**
* @ORM\ManyToOne(targetEntity="Task", inversedBy="activities") // with activities property in Task entity
* @ORM\JoinColumn(name="task_id", referencedColumnName="id")
*/
private $task;
// ...
}
但很明显,表单会显示包含所有任务的选择表单的活动字段...
将所有任务显示在一个页面中的最佳方法是什么,可以按周为每个任务输入一个值? (周由GET参数给出。)
修改
可以找到一个类似的问题,答案对我有帮助here。