有關的symfony 2.保存數據快速的問題我有這樣的方法(只是用於測試):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 /測試/ CategoryBundle /資源/配置/ routing.yml中:
TestCategoryBundle_create:
pattern: /category/create
defaults: { _controller: TestCategoryBundle:Category:create }
路由在app /配置/路由。 yml:
TestCategoryBundle:
resource: "@TestCategoryBundle/Resources/config/routing.yml"
prefix: /
您發佈的代碼不應該以這種方式表現。這個問題應該在這個代碼之外。也許你的'createProduct'在其他地方調用,或者'indexAction'被調用兩次? – J0HN 2012-01-17 08:24:58
我正在尋找重複,但我沒有它。這是控制器中唯一的方法。無論如何,如果我使用燈具束,數據插入正確。這是我的完整控制器類: – radri 2012-01-17 10:50:39
這是您運行該頁面兩次的結果嗎?控制器看起來應該只向數據庫添加一個實體。 – 2012-01-18 02:13:33