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

        }

    }


谢谢您的帮助。


九州编程
浏览 70回答 1
1回答

守着星空守着你

您可以将逻辑放在实体本身中,作为附加方法;毕竟它是实体行为,遵循学说的最佳实践。class Task&nbsp;{&nbsp; &nbsp; const STATE_DONE = 'done';&nbsp; &nbsp; // Other constants ommited&nbsp; &nbsp; public function isScheduled()&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; return date("Y-m-d") < $this->getDateStart() && !$this->isTaskDone();&nbsp; &nbsp; }&nbsp; &nbsp; public function getStatus()&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; if ($this->isTaskDone()) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return self::STATE_DONE;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; // Rest ommited&nbsp;&nbsp; &nbsp; }}然后您可以在模板中使用它们来生成描述,您可以在其中访问翻译器。{{ task.status | trans }}
打开App,查看更多内容
随时随地看视频慕课网APP