我正在尝试通过Symfony文档手册中的DoctrineMongoDBBundle教程。我已经创建了测试“产品”集合,并且能够毫无问题地插入其中,但是,我似乎无法从中读回来。或者至少,我无法在我看来打印任何结果。
SymfonyProfiler显示正在执行查询。但是,我的屏幕上没有任何内容。如果我没有在视图中注释掉我的foreach循环,那么工具栏甚至都不显示。
控制器代码:
/**
* @route("/dbReadTest2/{id}")
* @Template()
*/
public function showAction()
{
$repository = $this->get('doctrine_mongodb')
->getManager()
->getRepository('AcmeStoreBundle:Product');
$products = $repository->findAll();
return $this->render('AcmeStoreBundle:Default:index.html.twig', array(
'products' => $products,
));
}
查看代码:
{% if products.count %}
In if Block
<ul>
{% for product in products %}
In For Loop
<li>{{ product.name }} </li>
{% endfor %}
</ul>
{% else %}
<p>. There are no products yet!</p>
{% endif %}
<p>End of Page</p>
加载后我得到的唯一输出是“In If Block”。没有其他评论出现。
谢谢!
答案 0 :(得分:0)
我以这种方式与学说合作:
控制器:
$products = $this->getDoctrine()->getRepository("AcmeStoreBundle:Product")->findProducts();
ProductRepository:
class GalleryRepository extends EntityRepository
{
public function findProducts(){
return $this->getEntityManager()->getRepository("TLWEntitiesBundle:Product")->findAll();
}
}
其余代码似乎没问题。
答案 1 :(得分:0)
@ user2566987
1)肯定你的代码在twig中访问传递的$ products变量是错误的。我没有足够的时间为您编码,但我可以引导您找到解决方案
2)用{{ dump(products) }}
替换视图中的所有代码,然后重新加载页面,您将看到所有数据从那里决定它们是php数据对象还是php数据数组,并使用适当的语法输出它们。
3)如果类不存在,则无法访问类的属性字段,例如count
类产品的私有成员。我没有在链接教程MSDN
我希望它有所帮助。