关于在symfony中保存数据的快速问题2.我有这种方法(仅用于测试):
protected function createProduct()
{
$product = new Product();
$product->setName('My product');
$product->setDescription('Lorem ipsum dolor sit amet');
$product->setIsPublished(1);
$product->setPosition(1);
$em = $this->getDoctrine()->getEntityManager();
$em->persist($product);
$em->flush();
}
然后我有动作(仅用于测试):
public function indexAction()
{
$this->createCategory();
...
render ...
}
我的问题是,当我执行索引操作时,产品在我的数据库中保存两次。有没有人有类似的问题?有什么方法可以解决吗?
更新: - 完整控制器测试类:
namespace Test\CategoryBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Test\CategoryBundle\Entity\Category;
use Symfony\Component\HttpFoundation\Response;
class CategoryController extends Controller
{
public function createAction()
{
$c = new Category();
$c->setName('Category');
$c->setDescription('Lorem ipsum dolor sit amet');
$c->setIsPublished(1);
$c->setPosition(1);
$em = $this->getDoctrine()->getEntityManager();
$em->persist($c);
$em->flush();
return new Response('Created category id '.$c->getId());
}
}
在src / Test / CategoryBundle / Resources / config / routing.yml中路由:
TestCategoryBundle_create:
pattern: /category/create
defaults: { _controller: TestCategoryBundle:Category:create }
app / config / routing.yml中的路由:
TestCategoryBundle:
resource: "@TestCategoryBundle/Resources/config/routing.yml"
prefix: /
答案 0 :(得分:2)
我发现了问题。我不知道它是否正常,但至少数据不再重复了。
通过向createAction方法添加重定向解决了该问题。如果您不使用重定向,则数据将重复。这是正常的 ???无论如何,这是适合我的解决方案。
public function createAction()
{
$c = new Category();
$c->setName('My Category');
$c->setDescription('Lorem ipsum dolor sit amet');
$c->setIsPublished(1);
$c->setPosition(1);
$em = $this->getDoctrine()->getEntityManager();
$em->persist($c);
$em->flush();
return $this->redirect($this->generateUrl('your_routing_name_to_redirect'));
}
答案 1 :(得分:0)
我在Symfony 1.4中遇到过类似的问题。
我找到了
<img src="">
(没有src atributte),它会导致页面加载。它不是一个symfony问题,它是一个浏览器功能:P
也许你也有。