我的代码中有此错误,我正在写“ use”,但我有此错误:
试图调用名为“ redirect”的类的未定义方法 “ App \ Controller \ SetlocaleController”。
我的代码:
<?php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpFoundation\RedirectResponse;
class SetlocaleController extends HomeController {
public function __construct(\Twig\Environment $twig)
{
$this->twig = $twig;
}
public function setLocaleAction(Request $request, $language = null)
{
if($language != null)
{
$session->set('_locale', $language);
}
$url = $request->headers->get('referer');
if(empty($url))
{
return new response($this->twig->render('page/home.html.twig'));
}
else{
return $this->redirect($url);
}
}
}
请给我一个答案?
答案 0 :(得分:1)
按照Symfony的控制器最佳实践文档中的建议,确保在控制器上扩展Abstract控制器。
// HomeController.php
// ...
class HomeController extends AbstractController {
// ...
无需对SetlocaleController
进行其他更改。但是,如果RedirectResponse
不再使用,则可以将其删除
use Symfony\Component\HttpFoundation\RedirectResponse;
您需要使用已经导入的RedirectResponse
对象。不要使用以下代码:return $this->redirect($url);
,因为作为错误状态,没有为您的类定义redirect(url)
函数。
return new RedirectResponse($url);