我不知道如何在 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 }}