Symfony 2典型的問題,但沒有明確的迴應(我做了一些研究)。Symfony 2 FatalErrorException:錯誤:調用一個非對象的成員函數有()
給出下面的「DefaultController」類,它的實際工作:
<?php
namespace obbex\AdsBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class DefaultController extends Controller
{
public function indexAction()
{
$em = $this->getDoctrine()->getEntityManager();
$connection=$em->getConnection();
$string="SELECT DISTINCT country_code FROM country_data";
$statement = $connection->prepare($string);
$statement->execute();
$result = $statement->fetchAll();
var_dump($result); //works not problem
die();
}
}
我想委派調用數據庫稱爲「DatabaseController」另一個類的「DefaultController」現在設置如下:
<?php
namespace obbex\AdsBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use obbex\AdsBundle\Controller\DatabaseController; //new DatabaseController
class DefaultController extends Controller
{
public function indexAction()
{
$dbController = new DatabaseController();
$res = $dbController->getQuery();
}
}
和 「DatabaseController」 被設置爲執行以下操作:
namespace obbex\AdsBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class DatabaseController extends Controller{
public function __construct() {
}
public function getQuery()
{
$em = $this->getDoctrine()->getEntityManager();
$connection=$em->getConnection();
$string="SELECT DISTINCT country_code FROM country_data";
$statement = $connection->prepare($string);
$statement->execute();
return $statement->fetchAll();
}
}
而這個throw和下面的錯誤:FatalErrorException:錯誤:調用成員函數has()對於/home/alfonso/sites/ads.obbex.com/public_html/vendor/symfony/symfony/src/中的非對象Symfony/Bundle/FrameworkBundle/Controller/Controller.php line 202
因爲我擴展了完全相同的類「控制器」,所以我現在的想法正在流行。爲什麼它在一個案例中而不是在另一個案件中工作?
顯然,這是一個「容器問題」,可以被設置爲根據在另一個線程或經由延伸的「控制器·類然而並不在這種情況下工作。