Symfony -undefined方法名为"render"类

ArK*_*ArK 2 symfony

我是symfony框架的新手.它引发渲染错误.我尝试了所有的建议

@App/default/index.html.twig
AppBundle:default:index.html.twig
default/index.html.twig
Run Code Online (Sandbox Code Playgroud)

使用routing.yml

app:
    resource: "@AppBundle/Controller/"
    type:     annotation

lucky_number:
    path:     /lucky/number/{count}
    defaults: { _controller: AppBundle:Lucky:number }
Run Code Online (Sandbox Code Playgroud)

LuckyController.php

namespace AppBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class LuckyController
{
    /**
     * @Route("/lucky/number/{count}")
     */
    public function numberAction($count)
    {
        $number = rand(0, 100);
        $html = $this->render('@App/default/index.html.twig','number'=>$number);
        //$html = $this->container->get('templating')->render('AppBundle:default:index.html.twig',array('number' => $number));
        //$html = $this->container->get('templating')->render('default/index.html.twig',array('number' => $number));
        return new Response($html);
    }
}
Run Code Online (Sandbox Code Playgroud)

错误:

尝试调用类"AppBundle\Controller\LuckyController"的名为"render"的未定义方法.

小智 14

您忘记使用symfony控制器扩展控制器类.

namespace AppBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class LuckyController extends Controller // <-- HERE
{
    /**
     * @Route("/lucky/number/{count}")
     */
    public function numberAction($count)
    {
        $number = rand(0, 100);
        return $this->render('AppBundle:default:index.html.twig',array('number' => $number));
    }
}
Run Code Online (Sandbox Code Playgroud)