Symfony2着色表行取决于数据库值和配置参数

时间:2013-10-15 05:47:36

标签: php symfony view controller entity

每个人的好日子: 我是新的Symfony,对某些人来说这看起来很简单但对我来说很复杂。 我有一个对象列表,一个名为worker的实体内容,我创建了一个CollectionArray。该worker有一个DateInterval参数,我们称之为timeRamaining。然后我有来自app / config.yml的2个配置参数,那些我可以称之为Dangerrous和veryDangerous(橙色和红色)的参数......如果剩下的时间接近某个事件或者没有,在这种情况下退休。 现在在视图中我有一个HTML表格,根据搜索参数显示工人列表,我一直在努力使整个下午显示红色或橙色行,以防剩余时间为危险(橙色)或非常危险(红色) )。 我不知道应该如何对每项任务负责...例如,确定行的颜色?我应该对工作人员或控制器或视图执行任务吗?工作者是一个看起来更容易的地方,因为控制器必须在整个数组中上下移动,但是工作者离视图太远,它是编程逻辑然后在实体中我无法访问参数需要来自app / config.yml。 这个问题可能看起来很愚蠢,但实际上让我很难过......任何可以向我展示的类似例子都会受到好评和赞赏。 谢谢

1 个答案:

答案 0 :(得分:0)

在您的控制器中,您需要获取配置选项并将其传递给您的视图和数据。

public function tableAction() {
    $dangerousThreshold     = $this->container->getParameter('dangerous_threshold');
    $veryDangerousThreshold = $this->container->getParameter('very_dangerous_threshold');

   // If required transform your threshold in a comparable value, eg. a date.

    $data = $this->container->get('your_repository')->findAll();

    return $this->render(
        'YourBundle:Dashboard:table.html.twig',
        array(
            'data'                     => $data,
            'dangerous_threshold'      => $dangerousThreshold,
            'very_dangerous_threshold' => $veryDangerousThreshold,
        )
    );
}

在视图中,将$data日期与危险和安全日期进行比较非常危险的阈值,并指定一个css类,允许您设置任何你想要的样式。