คำถามติดแท็ก doctrine-orm

Doctrine ORM เป็น PHP ORM ในขณะที่หลักคำสอน 1.2 ใช้รูปแบบ Active Record Doctrine ORM 2 ขึ้นไปจะใช้รูปแบบ Data Mapper โครงการ Doctrine คือชุดของไลบรารีโอเพ่นซอร์สและเครื่องมือสำหรับจัดการกับสิ่งที่เป็นนามธรรมของฐานข้อมูลและการทำแผนที่เชิงวัตถุเชิงสัมพันธ์ที่เขียนด้วย PHP

3
Symfony2 และ Doctrine - ข้อผิดพลาด: PathExpression ไม่ถูกต้อง ต้องเป็น StateFieldPathExpression
ฉันมีเอนทิตีที่มีลักษณะดังนี้: /** * @Gedmo\Tree(type="nested") * @ORM\Table(name="categories") * @ORM\Entity() */ class Category extends BaseCategory { /** * @ORM\OneToMany(targetEntity="Category", mappedBy="parent") */ protected $children; /** * @Gedmo\TreeParent * @ORM\ManyToOne(targetEntity="Category", inversedBy="children") * @ORM\JoinColumn(name="parent_id", referencedColumnName="id", onDelete="SET NULL") */ protected $parent; } และฉันกำลังพยายามเรียกใช้แบบสอบถามเช่นนี้: $qb = $this->em->createQueryBuilder() ->select('c.parent') ->from('Category', 'c'); $result = $qb->getQuery()->getArrayResult(); อย่างไรก็ตามฉันได้รับข้อผิดพลาดต่อไปนี้: [Semantical Error] ... …

12
วิธีเข้ารหัสเอนทิตีหลักคำสอนเป็น JSON ในแอปพลิเคชัน Symfony 2.0 AJAX
ฉันกำลังพัฒนาแอพเกมและใช้ Symfony 2.0 ฉันมีคำขอ AJAX จำนวนมากไปยังแบ็กเอนด์ และการตอบสนองเพิ่มเติมคือการแปลงเอนทิตีเป็น JSON ตัวอย่างเช่น: class DefaultController extends Controller { public function launchAction() { $user = $this->getDoctrine() ->getRepository('UserBundle:User') ->find($id); // encode user to json format $userDataAsJson = $this->encodeUserDataToJson($user); return array( 'userDataAsJson' => $userDataAsJson ); } private function encodeUserDataToJson(User $user) { $userData = array( 'id' => $user->getId(), …

2
หลักคำสอน 2 และตารางลิงก์แบบกลุ่มต่อกลุ่มพร้อมช่องเสริม
(ขออภัยสำหรับคำถามที่ไม่ต่อเนื่องกัน: ฉันพยายามตอบคำถามในขณะที่เขียนโพสต์นี้ แต่นี่คือ :) ฉันกำลังพยายามสร้างแบบจำลองฐานข้อมูลที่มีความสัมพันธ์แบบกลุ่มต่อกลุ่มภายในตารางลิงก์ แต่ก็มีค่าต่อลิงก์เช่นกันในกรณีนี้คือตารางเก็บสต็อค (นี่เป็นตัวอย่างพื้นฐานสำหรับปัญหาอื่น ๆ ที่ฉันประสบ แต่ฉันคิดว่าจะทดสอบกับสิ่งนี้ก่อนที่จะดำเนินการต่อ) ฉันใช้exportmwbเพื่อสร้าง Entities Store และ Product สองรายการสำหรับตัวอย่างง่ายๆนี้ทั้งสองอย่างจะแสดงด้านล่าง อย่างไรก็ตามปัญหาตอนนี้คือฉันไม่สามารถหาวิธีเข้าถึงค่า stock.amount (ลงนาม int เนื่องจากอาจเป็นค่าลบ) โดยใช้ Doctrine นอกจากนี้เมื่อฉันพยายามสร้างตารางโดยใช้ orm ของหลักคำสอน: schema-tool: create function สิ่งนี้ให้ผลลัพธ์เพียงสองเอนทิตีและสามตารางหนึ่งเป็นตารางลิงก์ที่ไม่มีค่าและตารางข้อมูลสองตารางเนื่องจากความสัมพันธ์แบบกลุ่มต่อกลุ่มไม่ใช่เอนทิตีในตัวเองดังนั้นฉันจึงมีได้เฉพาะผลิตภัณฑ์และร้านค้าเป็นเอนทิตี ด้วยเหตุนี้ฉันจึงลองเปลี่ยนโมเดลฐานข้อมูลของฉันให้มีสต็อกเป็นตารางแยกต่างหากที่มีความสัมพันธ์กับการจัดเก็บและผลิตภัณฑ์ ฉันยังเขียนชื่อเขตข้อมูลใหม่เพื่อให้สามารถยกเว้นว่าเป็นที่มาของปัญหา: จากนั้นสิ่งที่ฉันพบก็คือฉันยังไม่ได้รับ Stock entity ... และฐานข้อมูลเองก็ไม่มีฟิลด์ 'amount' ฉันต้องการที่จะผูกร้านค้าและสินค้าเหล่านี้เข้าด้วยกันในตารางสต็อค (เหนือสิ่งอื่นใด) ... root@hdev:/var/www/test/library# php doctrine.php orm:info Found 2 mapped entities: [OK] …

17
EntityManager ถูกปิด
[Doctrine\ORM\ORMException] The EntityManager is closed. หลังจากที่ฉันได้รับข้อยกเว้น DBAL เมื่อแทรกข้อมูล EntityManager จะปิดและฉันไม่สามารถเชื่อมต่อใหม่ได้ ฉันลองแบบนี้ แต่ไม่ได้รับการเชื่อมต่อ $this->em->close(); $this->set('doctrine.orm.entity_manager', null); $this->set('doctrine.orm.default_entity_manager', null); $this->get('doctrine')->resetEntityManager(); $this->em = $this->get('doctrine')->getEntityManager(); ใครมีความคิดที่จะเชื่อมต่อใหม่?

1
การเลิกใช้: Doctrine \ ORM \ Mapping \ UnderscoreNamingStrategy โดยไม่ทำให้หมายเลขที่ทราบถูกเลิกใช้
ฉันใช้ Symfony 4.3.8 และฉันไม่สามารถหาข้อมูลเกี่ยวกับการคัดค้านเหล่านี้ได้: ผู้ใช้เลิกใช้งาน: การสร้าง Doctrine \ ORM \ Mapping \ UnderscoreNamingStrategy โดยไม่ทำให้หมายเลขทราบถูกคัดค้านและจะถูกลบใน Doctrine ORM 3.0 การสร้าง Doctrine \ ORM \ Mapping \ UnderscoreNamingStrategy โดยไม่ทำให้หมายเลขทราบถูกคัดค้านและจะถูกลบใน Doctrine ORM 3.0 ฉันค้นหาใน stacktrace และพบสิ่งนี้: class UnderscoreNamingStrategy implements NamingStrategy { private const DEFAULT_PATTERN = '/(?<=[a-z])([A-Z])/'; private const NUMBER_AWARE_PATTERN = '/(?<=[a-z0-9])([A-Z])/'; /** * Underscore …

2
เหตุใดฉันจึงได้รับข้อผิดพลาด“ คุณสมบัติที่พิมพ์ต้องไม่สามารถเข้าถึงได้ก่อนเริ่มต้น” เมื่อแนะนำคำแนะนำประเภทคุณสมบัติ?
ฉันได้อัพเดตคำจำกัดความของคลาสของฉันเพื่อใช้ประโยชน์จากคำแนะนำประเภทคุณสมบัติที่แนะนำใหม่เช่นนี้: class Foo { private int $id; private ?string $val; private DateTimeInterface $createdAt; private ?DateTimeInterface $updatedAt; public function __construct(int $id) { $this->id = $id; } public function getId(): int { return $this->id; } public function getVal(): ?string { return $this->val; } public function getCreatedAt(): ?DateTimeInterface { return $this->createdAt; } public …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.