簡體   English   中英

如何在Doctrine中使用MySQL數據庫中的變量?

[英]How to use variable from mySQL DB in Doctrine?

我對學說有疑問。 我的任務是從其他表中設置帶有類別的新產品。 類別名稱是唯一的。 類別和產品表之間存在千絲萬縷的聯系。 當我做:

        $brand = new Category();
        $brand->setBrand('Beers');

        $beer = new Product();
        $beer->setModel('Bavaria');
        $beer->setBrand($brand);
        $em = $this->getDoctrine()->getManager();
        $em->persist($brand);
        $em->persist($beer);
        $em->flush();

沒事的 但是,當我使用其他型號名稱(例如喜力啤酒)進行此查詢時,我已經重復了品牌名稱。 我想有1個品牌名稱,例如葡萄酒,伏特加酒,啤酒。 我不想每次查詢時都創建品牌名稱。 感謝您的回答。

如果要讓用戶在類別中進行選擇,則可以使用帶有EntityType的表單。

如果要讓用戶鍵入名稱並創建類別(如果該名稱不存在),則可以這樣:

$newBrand = 'userInput';
$em       = $this->getDoctrine()->getManager();
$category = $em->getRepository('YouBundle:YouEntity')->findOneBy(array('brand' => $newBrand));
if ($category == null) {
    $category = new Category();
    $category->setBrand($newBrand);
    $em->persist($category);
} 
$beer = new Product();
$beer->setModel('Bavaria');
$beer->setBrand($category); // If you need to use $category in you view don't forget $category->addProduct($beer);
$em->persist($beer);
$em->flush();

PS:mySQL有一個create或update指令,但是在這里我不建議這樣做,因為您需要匹配所有字段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM