我開始玩 Symfony 并且我正在嘗試創建一個資料庫查詢。據我了解,我應該使用 entitymanager 創建一個 nativequery。當我執行下面的代碼時,我收到此警告。
警告:未定義的變數 $entityManager
我知道這是合乎邏輯的,因為變數沒有在任何地方初始化,但是我從哪里得到物體管理器?
這是我的課:
namespace App\Repository;
use App\Entity\News;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
use Doctrine\ORM\Query\ResultSetMapping;
class NewsRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, News::class);
}
public function getById($id)
{
$rsm = new ResultSetMapping();
$query = $entityManager->createNativeQuery('SELECT * FROM `news` WHERE `id`=? LIMIT 1', $rsm);
$query->setParameter(1, $id);
$users = $query->getResult();
}
}
uj5u.com熱心網友回復:
您在物體存盤庫中,_em應該是公開的。
你可以這樣做:
public function getById($id)
{
$rsm = new ResultSetMapping();
$query = $this->_em->createNativeQuery('SELECT * FROM `news` WHERE `id`=? LIMIT 1', $rsm);
$query->setParameter(1, $id);
$users = $query->getResult();
}
或使用自動裝配來獲取物體管理器。
use Doctrine\ORM\EntityManagerInterface;
public function __construct(EntityManagerInterface $em, ManagerRegistry $registry)
{
$this->em = $em;
parent::__construct($registry, News::class);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/376030.html
