我想Symfony2的控制器擴展到我的項目正在使用的API,但我有一個非對象使用的getParameter()函數,看看我的代碼的錯誤:Symfony2的擴展控制器的getParameter()
namespace Moda\CategoryBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class ApiController extends Controller
{
/**
* @var String
*/
protected $_host;
/**
* @var String
*/
protected $_user;
/**
* @var String
*/
protected $_password;
public function __construct()
{
$this->_host = $this->container->getParameter('api_host');
$this->_user = $this->container->getParameter('api_user');
$this->_password = $this->container->getParameter('api_password');
}
}
而旁邊控制器
namespace Moda\CategoryBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
class CategoryController extends ApiController
{
/**
* @Route("/category", name="_category")
* @Template()
*/
public function indexAction()
{
return array('name' => 'test');
}
}
而結束,我得到了這個致命錯誤:
FatalErrorException: Error: Call to a member function getParameter() on a non-object in (..)
我嘗試給我們e $ this-> setContainer()但它不起作用。你有什麼想法我該如何解決這個問題?
您可以將ApiController定義爲服務。 –
可能的重複http://stackoverflow.com/questions/9736598/symfony2-how-to-use-construct-in-a-controller-and-access-securty-context – Calimero
@Calimero是的,主題是類似的。但我不明白答案。你看我想做什麼,在symfony中是否有辦法做到這一點?我試圖使用setContainer,但沒有幫助。 – Purzynski