从命令集 'open' 状态创建任务
Create Task from Command set 'open' status
我想在自定义 Bundle 中通过 Command 创建一个新任务。但是在设置任务状态时遇到麻烦。我从 Backend developer's guide 中取出夹具并将其调整为 Command
$task = new Task();
$task->setSubject('Important task');
$task->setDescription('This is an important task');
$defaultPriority = $this->doctrine->getRepository(TaskPriority::class)->find('normal');
if ($defaultPriority) {
$task->setTaskPriority($defaultPriority);
}
$task->setOwner($taskDataArray['user']);
$task->setOrganization($this->getOrganization());
$this->getEntityManager(Task::class)->persist($task);
$this->getEntityManager(Task::class)->flush();
数据库记录已创建,但默认status_id
字段为空。
没有状态,它不会显示在数据网格中。
状态的类型为 AbstractEnumValue
。设置状态的方法在模型中定义为 * @method Task setStatus(AbstractEnumValue $status)
CRUD操作中如何正确设置状态?
先谢谢了。
Status 是一个枚举字段。
内部枚举是具有自动生成 class 名称的实体。
要使用枚举实体,首先,您必须生成它的名称,然后您可以使用学说访问它,作为一个常规实体。
// generate enum entity class name by the enum code
$statusClass = ExtendHelper::buildEnumValueClassName('task_status');
// find existing status entity
$statusOpen = $this->doctrine->find($statusClass, 'open');
// assign status to the task
$task->setStatus($statusOpen);
请参阅 OroEntityExtendBundle documentation 中的参考资料。
我想在自定义 Bundle 中通过 Command 创建一个新任务。但是在设置任务状态时遇到麻烦。我从 Backend developer's guide 中取出夹具并将其调整为 Command
$task = new Task();
$task->setSubject('Important task');
$task->setDescription('This is an important task');
$defaultPriority = $this->doctrine->getRepository(TaskPriority::class)->find('normal');
if ($defaultPriority) {
$task->setTaskPriority($defaultPriority);
}
$task->setOwner($taskDataArray['user']);
$task->setOrganization($this->getOrganization());
$this->getEntityManager(Task::class)->persist($task);
$this->getEntityManager(Task::class)->flush();
数据库记录已创建,但默认status_id
字段为空。
没有状态,它不会显示在数据网格中。
状态的类型为 AbstractEnumValue
。设置状态的方法在模型中定义为 * @method Task setStatus(AbstractEnumValue $status)
CRUD操作中如何正确设置状态?
先谢谢了。
Status 是一个枚举字段。 内部枚举是具有自动生成 class 名称的实体。 要使用枚举实体,首先,您必须生成它的名称,然后您可以使用学说访问它,作为一个常规实体。
// generate enum entity class name by the enum code
$statusClass = ExtendHelper::buildEnumValueClassName('task_status');
// find existing status entity
$statusOpen = $this->doctrine->find($statusClass, 'open');
// assign status to the task
$task->setStatus($statusOpen);
请参阅 OroEntityExtendBundle documentation 中的参考资料。