という名前の未定義のメソッドを呼び出すようにしようと、私はので、ここでのサービスにQueryBuilderを行う方法を理解しようとしている私が何をやったかである:は「createQueryBuilder」
私のサービスを作成します。
namespace OC\PlatformBundle\PurgerAdvert;
use Doctrine\ORM\EntityManager;
class PurgerAdvert
{
private $em;
public function __construct(EntityManager $em) {
$this->entityManager = $em;
}
public function purge($days)
{
$queryBuilder = $this->createQueryBuilder();
$queryBuilder->select('a')->from('OCPlatformBundle:Advert', 'a');
// get the Query from the QueryBuilder here ...
$query = $qb->getQuery();
return $result = $query->getResult();
}
}
を
はservices.ymlでそれを宣言します。私はその前にエラーをしましたので、
oc_platform.purger.advert:
class: OC\PlatformBundle\PurgerAdvert\PurgerAdvert
arguments: ['@doctrine.orm.entity_manager']
私は、クエリを削除します。"Attempted to call an undefined method named "createQueryBuilder" of class "OC\PlatformBundle\PurgerAdvert\PurgerAdvert""
私は適切にEntityManagerを呼び出すことはありませんでしたが、私は私を見ていないことを前提としてい間違い...
おかげであなたの助け:)
$ this-> createQueryBuilder() '$ em-> createQueryBuilder()'の代わりに – ciurciurek
'$ this-> entityManagerを使うために' private $ em'の代わりに 'private $ entityManager'を変更した方が良いでしょう - > createQueryBuilder() 'を実行します。 –
私はciurciurekのソリューションを試しましたが、 "Notice:Undefined variable:em"/gp_sfloverの解決策が働いています!ありがとう:) –