我不知道如何在 symfony 中实现逻辑
I don't know how to implement a logic in symfony
我在我的任务实体中添加了一个 status
,我会知道在将它发送到前端之前,哪个是设置此 status
的逻辑的最佳方式。应该在TaskController
。应该放在服务上?我不这么认为,但我不确定。我放了一个我想添加的逻辑示例来设置状态:
private function loadStatus(Task $task): string
{
$object = new \stdClass();
$object->isDone = $task->isTaskDone();
$object->isLate = date("Y-m-d") > $task->getDateStart();
$object->isScheduled = date("Y-m-d") < $task->getDateStart() && !$task->isTaskDone();
if ($object->isDone) {
return 'task is done';
}
if ($object->isLate) {
return 'task is late';
}
if ($object->isScheduled) {
return 'task is scheduled'
}
}
感谢您的帮助。
您可以将逻辑放在实体本身中,作为附加方法;毕竟它是实体行为,遵循 doctrine's best practices.
class Task
{
const STATE_DONE = 'done';
// Other constants ommited
public function isScheduled()
{
return date("Y-m-d") < $this->getDateStart() && !$this->isTaskDone();
}
public function getStatus()
{
if ($this->isTaskDone()) {
return self::STATE_DONE;
}
// Rest ommited
}
}
然后您可以在模板中使用它们来生成描述,您可以在其中访问翻译器。
{{ task.status | trans }}
我在我的任务实体中添加了一个 status
,我会知道在将它发送到前端之前,哪个是设置此 status
的逻辑的最佳方式。应该在TaskController
。应该放在服务上?我不这么认为,但我不确定。我放了一个我想添加的逻辑示例来设置状态:
private function loadStatus(Task $task): string
{
$object = new \stdClass();
$object->isDone = $task->isTaskDone();
$object->isLate = date("Y-m-d") > $task->getDateStart();
$object->isScheduled = date("Y-m-d") < $task->getDateStart() && !$task->isTaskDone();
if ($object->isDone) {
return 'task is done';
}
if ($object->isLate) {
return 'task is late';
}
if ($object->isScheduled) {
return 'task is scheduled'
}
}
感谢您的帮助。
您可以将逻辑放在实体本身中,作为附加方法;毕竟它是实体行为,遵循 doctrine's best practices.
class Task
{
const STATE_DONE = 'done';
// Other constants ommited
public function isScheduled()
{
return date("Y-m-d") < $this->getDateStart() && !$this->isTaskDone();
}
public function getStatus()
{
if ($this->isTaskDone()) {
return self::STATE_DONE;
}
// Rest ommited
}
}
然后您可以在模板中使用它们来生成描述,您可以在其中访问翻译器。
{{ task.status | trans }}