ไม่สามารถเปลี่ยนชื่อกลยุทธ์ในหลักคำสอน 2 ได้

ฉันใช้ Zend Framework 2.4.3 และ Doctrine 0.9 (สำหรับ ZF2) ชื่อเอนทิตีของฉันอยู่ใน CamelCase ในขณะที่ชื่อตารางของฉันเป็นตัวพิมพ์เล็กทั้งหมด ส่งผลให้เกิดข้อผิดพลาดใน mysql

"SQLSTATE [42S02]: ไม่พบตารางฐานหรือมุมมอง: 1146 ตาราง 'mydb.Campaign' ไม่มีอยู่"

แน่นอน ฉันสามารถเปลี่ยนชื่อเอนทิตีของฉันเป็นตัวพิมพ์เล็กได้ แต่คำถามของฉันคือเหตุใดคำอธิบายประกอบตารางจึงไม่ทำงาน ฉันจึงกำหนดเอนทิตีของฉันเป็น

/**
 * ORM\Table(name="campaign")
**/
class Campaign
{
    //fields are here
}

ฉันสร้าง custom NamingStrategy เพื่อใช้ชื่อตารางเป็นตัวพิมพ์เล็ก แต่ Doctrine ไม่ได้ใช้ NamingStrategy ที่ฉันพูดแบบนี้เพราะฉันได้เปลี่ยนรหัสของ DefaultNamingStrategy เพื่อเปลี่ยนชื่อตัวพิมพ์ของตาราง แต่ชื่อตารางผลลัพธ์จะเป็นแคมเปญเสมอไม่ใช่ "แคมเปญ"

ฉันพลาดอะไรไปรึเปล่า?


person ZafarYousafi    schedule 11.07.2015    source แหล่งที่มา
comment
MySql และไม่มีทางสำหรับฉันที่จะเปลี่ยนจากตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เป็นแบบไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่   -  person ZafarYousafi    schedule 12.07.2015
comment
เหตุใดคำถามนี้จึงติดแท็ก symfony2   -  person Francesco Abeni    schedule 12.07.2015
comment
คุณกำลังรวมเนมสเปซ ORM ไว้ในไฟล์เอนทิตีของคุณหรือไม่?   -  person Saeven    schedule 12.07.2015
comment
ใช่ ฉันกำลังรวมเนมสเปซ ORM ไว้ด้วย Doctrine\ORM\Mapping เป็น ORM   -  person ZafarYousafi    schedule 12.07.2015
comment
@FrancescoAbeni เนื่องจาก Symphony2 ถูกดาวน์โหลดเป็นการพึ่งพาด้วย ฉันเป็นมือใหม่และไม่รู้ว่าเกี่ยวข้องกับซิมโฟนีหรือไม่   -  person ZafarYousafi    schedule 12.07.2015


คำตอบ (1)


หากรหัสนี้เป็นรหัสที่คุณใช้สำหรับเอนทิตีของคุณ Thera จะหายไป @ ก่อน ORM:

/**
 * @ORM\Entity
 * @ORM\Table(name="campaign")
 */
class Campaign
person danopz    schedule 13.07.2015