Symfony-按定义状态呈现视图

时间:2018-09-27 14:37:34

标签: php database forms view twig

我在数据库表中定义了状态字段,例如

        $newPlay->setStatus(Plays::STATUS_PUBLISHED);

现在已保存在该数据库表中。

我需要使用具有该状态的字段来渲染视图。

我为此进行了api调用,但我不断收到错误消息

  

控制器“ AppBundle \ Website \ Controller \ PublishedTicketsController :: publishedTicketsAction()”要求您为“ $ status”参数提供一个值。该参数可以为空,并且没有提供空值,没有提供默认值,或者因为此参数之后有一个非可选参数。

这是我的api调用。

    /**
 * @Route("/published-tickets", name="published_tickets")
 * @param Request $request
 * @return \Symfony\Component\HttpFoundation\Response
 * @throws \Exception
 */

public function publishedTicketsAction(Request $request, $status)
{

    $query = $this->getDoctrine()
        ->getRepository('AppBundle:Plays')->findBy(['status' => $status]);

    return $this->render('@FrontTemplates/pages/published-tickets.html.twig', array(
        'query' => $query,
        'status' => $status
    ));
}

1 个答案:

答案 0 :(得分:0)

我已经做到了。

为我服务。

    public function publishedTicket()
{
    $query = $this->getPlaysRepository()
        ->createQueryBuilder('t')
        ->select('t')
        ->where('t.status =:status')
        ->setParameter('status', Plays::STATUS_PUBLISHED)
        ->getQuery()
        ->getResult();

    return $query;
}

以及在我的控制器中

$playPublish = $this->container->get('publish.tickets')->publishedTicket();

    return $this->render('@FrontTemplates/pages/published-tickets.html.twig', array(
        'playPublish' => $playPublish
    ));

这是我不知道的部分。

  

-> setParameter('status',播放:: STATUS_PUBLISHED)