我在parameters.ini中设置了一个变量,但现在我想从EntityRepository中检索该变量并且$this->container未设置,所以我不能这样做
我该怎么去集装箱?
谢谢 :)
Tuo*_* Le 10
您不应该在EntityRepository中使用$ container.而是创建一个Model Manager服务并通过DI注入容器.
Fel*_*oni 10
兄弟,交响乐有时候或很多次都很头疼,这里是一种hacky方式,不像@Tuong Le的回答那样正确,但对于像@keyboardSmasher这样的变量来说,这是一件非常恐怖的事情.
在函数/方法的开头,您可以:
global $kernel;
if($kernel instanceOf \AppCache) $kernel = $kernel->getKernel();
Run Code Online (Sandbox Code Playgroud)
所以你可以访问一个容器
$kernel->getContainer();
Run Code Online (Sandbox Code Playgroud)
希望这能让你有时间去公园散步=),
小智 5
如果您尝试从EntityRepository类访问DBAL,可以使用$ this-> getEntityManager() - > getConnection()来获取它.
例如:
class CustomRepository extends EntityRepository
{
public function myCustomFunction()
{
$conn = $this->getEntityManager()->getConnection();
$stmt = $conn->query($sql);
if ($stmt)
{
while ($row = $stmt->fetch())
var_dump($row);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14137 次 |
| 最近记录: |