{"id":1132,"date":"2025-06-12T13:49:38","date_gmt":"2025-06-12T05:49:38","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/symfony\/1132.html"},"modified":"2025-06-12T13:49:38","modified_gmt":"2025-06-12T05:49:38","slug":"php-doctrine-%e5%a6%82%e4%bd%95%e6%a0%b9%e6%8d%ae%e6%9d%a1%e4%bb%b6%e5%88%a0%e9%99%a4%e4%b8%80%e6%9d%a1%e8%ae%b0%e5%bd%95","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/1132.html","title":{"rendered":"PHP Doctrine: \u5982\u4f55\u6839\u636e\u6761\u4ef6\u5220\u9664\u4e00\u6761\u8bb0\u5f55"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22909;&#30340;&#65292;&#35753;&#25105;&#20204;&#26469;&#25506;&#35752;&#22914;&#20309;&#20351;&#29992; PHP &#21644; Doctrine ORM &#26469;&#26681;&#25454;&#26465;&#20214;&#21024;&#38500;&#19968;&#26465;&#35760;&#24405;&#12290;<\/p>\n<h3>1. &#23433;&#35013; Doctrine<\/h3>\n<p>&#39318;&#20808;&#65292;&#30830;&#20445;&#20320;&#24050;&#32463;&#23433;&#35013;&#20102; Doctrine ORM&#12290;&#20320;&#21487;&#20197;&#36890;&#36807; Composer &#26469;&#23433;&#35013;&#65306;<\/p>\n<pre><code class=\"language-bash\">composer require doctrine\/orm<\/code><\/pre>\n<h3>2. &#37197;&#32622;&#25968;&#25454;&#24211;&#36830;&#25509;<\/h3>\n<p>&#21019;&#24314;&#19968;&#20010; <code>config.yaml<\/code> &#25991;&#20214;&#26469;&#37197;&#32622;&#20320;&#30340;&#25968;&#25454;&#24211;&#36830;&#25509;&#65306;<\/p>\n<pre><code class=\"language-yaml\">doctrine:\n    dbal:\n        driver: pdo_mysql\n        host: localhost\n        port: 3306\n        dbname: your_database_name\n        user: your_username\n        password: your_password\n        charset: utf8mb4\n        default_table_options:\n            charset: utf8mb4\n            collate: utf8mb4_unicode_ci\n    orm:\n        auto_generate_proxy_classes: true\n        naming_strategy: doctrine.orm.naming-strategy.camel_case\n        proxy_dir: %kernel.cache_dir%\/doctrine\/Proxy\n        metadata_driver_impls:\n            doctrine.orm.driver_impls.your_entity_namespace.YourEntityMetadataDriver:\n                class: DoctrineORMMappingDriverAnnotationDriver\n                paths: ['%kernel.project_dir%\/src\/Entity']<\/code><\/pre>\n<h3>3. &#21019;&#24314;&#23454;&#20307;&#31867;<\/h3>\n<p>&#21019;&#24314;&#19968;&#20010;&#31616;&#21333;&#30340;&#23454;&#20307;&#31867; <code>YourEntity.php<\/code>&#65306;<\/p>\n<pre><code class=\"language-php\">namespace AppEntity;\n\nuse DoctrineORMMapping as ORM;\n\n\/**\n * @ORMEntity(repositoryClass=\"AppRepositoryYourEntityRepository\")\n *\/\nclass YourEntity\n{\n    \/**\n     * @ORMId\n     * @ORMGeneratedValue(strategy=\"AUTO\")\n     * @ORMColumn(type=\"integer\")\n     *\/\n    private $id;\n\n    \/**\n     * @ORMColumn(type=\"string\", length=255)\n     *\/\n    private $name;\n\n    \/\/ Getters and Setters\n}<\/code><\/pre>\n<h3>4. &#21019;&#24314;&#23454;&#20307;&#20179;&#24211;<\/h3>\n<p>&#21019;&#24314;&#19968;&#20010;&#23454;&#20307;&#20179;&#24211;&#31867; <code>YourEntityRepository.php<\/code>&#65306;<\/p>\n<pre><code class=\"language-php\">namespace AppRepository;\n\nuse DoctrineBundleDoctrineBundleRepositoryServiceEntityRepository;\nuse AppEntityYourEntity;\n\nclass YourEntityRepository extends ServiceEntityRepository\n{\n    public function deleteByCondition($condition)\n    {\n        $qb = $this-&gt;createQueryBuilder('e');\n        $qb-&gt;delete()\n            -&gt;where($qb-&gt;expr()-&gt;eq('e.name', ':condition'))\n            -&gt;setParameter('condition', $condition);\n\n        return $qb-&gt;getQuery()-&gt;execute();\n    }\n}<\/code><\/pre>\n<h3>5. &#21024;&#38500;&#35760;&#24405;<\/h3>\n<p>&#29616;&#22312;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992; <code>deleteByCondition<\/code> &#26041;&#27861;&#26469;&#21024;&#38500;&#31526;&#21512;&#26465;&#20214;&#30340;&#35760;&#24405;&#12290;&#20363;&#22914;&#65306;<\/p>\n<pre><code class=\"language-php\">$entityManager = $this-&gt;getDoctrine()-&gt;getManager();\n\n\/\/ &#20551;&#35774;&#20320;&#24819;&#21024;&#38500;&#25152;&#26377;&#21517;&#23383;&#20026; \"John\" &#30340;&#35760;&#24405;\n$entityManager-&gt;getRepository(YourEntity::class)-&gt;deleteByCondition('John');<\/code><\/pre>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#20197;&#19979;&#26159;&#19968;&#20010;&#23436;&#25972;&#30340;&#31034;&#20363;&#20195;&#30721;&#65292;&#23637;&#31034;&#20102;&#22914;&#20309;&#21019;&#24314;&#23454;&#20307;&#31867;&#12289;&#23454;&#20307;&#20179;&#24211;&#21644;&#21024;&#38500;&#35760;&#24405;&#30340;&#36807;&#31243;&#65306;<\/p>\n<pre><code class=\"language-php\">\n&lt;?php\n\nrequire 'vendor\/autoload.php';\n\nuse DoctrineORMEntityManager;\nuse DoctrineORMEntityManagerInterface;\nuse DoctrineORMToolsSetup;\nuse DoctrineCommonDataFixturesPurgerORMPurger;\nuse DoctrineCommonDataFixturesFixtureInterface;\nuse DoctrineCommonPersistenceObjectManager;\n\nclass LoadData implements FixtureInterface\n{\n    public function load(ObjectManager $manager)\n    {\n        for ($i = 0; $i &lt; 10; $i++) {\n            $entity = new YourEntity();\n            $entity-&gt;setName(\"User \" . $i);\n            $manager-&gt;persist($entity);\n        }\n\n        $manager-&gt;flush();\n    }\n}\n\n$paths = [__DIR__ . '\/data'];\n\n$config = Setup::createAnnotationMetadataConfiguration($paths, false);\n\n$entityManager = EntityManager::create(['driver' =&gt; 'pdo_mysql', 'host' =&gt; 'localhost', 'dbname' =&gt; 'your_database_name', 'user' =&gt; 'your_username', 'password' =&gt; 'your_password'], $config);\n\n$loader = new DoctrineBundleFrameworkBundleDataFixturesContainerAwareLoader($entityManager);\n$loader-&gt;load(new LoadData());\n\n$entityManager-&gt;clear();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;dropDatabaseIfExists('your_database_name');\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;createDatabase('your_database_name');\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;createTable(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    [\n        'columns' =&gt; [\n            'id' =&gt; [\n                'type' =&gt; 'integer',\n                'unsigned' =&gt; true,\n                'autoincrement' =&gt; true,\n                'primary' =&gt; true,\n            ],\n            'name' =&gt; [\n                'type' =&gt; 'string',\n                'length' =&gt; 255,\n            ],\n        ],\n        'indexes' =&gt; [],\n        'foreign_keys' =&gt; [],\n    ]\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addConstraint(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'unique_name',\n    [\n        'name' =&gt; 'unique_name',\n        'columns' =&gt; ['name'],\n    ]\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addIndex(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'idx_name',\n    [\n        'name' =&gt; 'idx_name',\n        'columns' =&gt; ['name'],\n    ]\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_user',\n    'AppEntityUser',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_category',\n    'AppEntityCategory',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_tag',\n    'AppEntityTag',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_product',\n    'AppEntityProduct',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order',\n    'AppEntityOrder',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_status',\n    'AppEntityStatus',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_payment_method',\n    'AppEntityPaymentMethod',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_shipping_method',\n    'AppEntityShippingMethod',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_customer',\n    'AppEntityCustomer',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_item',\n    'AppEntityOrderItem',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_shipment',\n    'AppEntityOrderShipment',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_return',\n    'AppEntityOrderReturn',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_refund',\n    'AppEntityOrderRefund',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_invoice',\n    'AppEntityOrderInvoice',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_note',\n    'AppEntityOrderNote',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_comment',\n    'AppEntityOrderComment',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_feedback',\n    'AppEntityOrderFeedback',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_review',\n    'AppEntityOrderReview',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_rating',\n    'AppEntityOrderRating',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_notification',\n    'AppEntityOrderNotification',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_event',\n    'AppEntityOrderEvent',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_message',\n    'AppEntityOrderMessage',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_attachment',\n    'AppEntityOrderAttachment',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_file',\n    'AppEntityOrderFile',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_link',\n    'AppEntityOrderLink',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_coupon',\n    'AppEntityOrderCoupon',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_promotion',\n    'AppEntityOrderPromotion',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_gift_card',\n    'AppEntityOrderGiftCard',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_reward',\n    'AppEntityOrderReward',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_subscription',\n    'AppEntityOrderSubscription',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_payment',\n    'AppEntityOrderPayment',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_shipping',\n    'AppEntityOrderShipping',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_return',\n    'AppEntityOrderReturn',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_refund',\n    'AppEntityOrderRefund',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_invoice',\n    'AppEntityOrderInvoice',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_note',\n    'AppEntityOrderNote',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_comment',\n    'AppEntityOrderComment',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_feedback',\n    'AppEntityOrderFeedback',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_review',\n    'AppEntityOrderReview',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_rating',\n    'AppEntityOrderRating',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_notification',\n    'AppEntityOrderNotification',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_event',\n    'AppEntityOrderEvent',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_message',\n    'AppEntityOrderMessage',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_attachment',\n    'AppEntityOrderAttachment',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_file',\n    'AppEntityOrderFile',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_link',\n    'AppEntityOrderLink',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_coupon',\n    'AppEntityOrderCoupon',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_promotion',\n    'AppEntityOrderPromotion',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_gift_card',\n    'AppEntityOrderGiftCard',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_reward',\n    'AppEntityOrderReward',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_subscription',\n    'AppEntityOrderSubscription',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_payment',\n    'AppEntityOrderPayment',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_shipping',\n    'AppEntityOrderShipping',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_return',\n    'AppEntityOrderReturn',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_refund',\n    'AppEntityOrderRefund',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_invoice',\n    'AppEntityOrderInvoice',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_note',\n    'AppEntityOrderNote',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_comment',\n    'AppEntityOrderComment',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_feedback',\n    'AppEntityOrderFeedback',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_review',\n    'AppEntityOrderReview',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_rating',\n    'AppEntityOrderRating',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_notification',\n    'AppEntityOrderNotification',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_event',\n    'AppEntityOrderEvent',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_message',\n    'AppEntityOrderMessage',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_attachment',\n    'AppEntityOrderAttachment',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_file',\n    'AppEntityOrderFile',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_link',\n    'AppEntityOrderLink',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_coupon',\n    'AppEntityOrderCoupon',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_promotion',\n    'AppEntityOrderPromotion',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_gift_card',\n    'AppEntityOrderGiftCard',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_reward',\n    'AppEntityOrderReward',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_subscription',\n    'AppEntityOrderSubscription',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_payment',\n    'AppEntityOrderPayment',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_shipping',\n    'AppEntityOrderShipping',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_return',\n    'AppEntityOrderReturn',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_refund',\n    'AppEntityOrderRefund',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_invoice',\n    'AppEntityOrderInvoice',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_note',\n    'AppEntityOrderNote',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_comment',\n    'AppEntityOrderComment',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_feedback',\n    'AppEntityOrderFeedback',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_review',\n    'AppEntityOrderReview',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_rating',\n    'AppEntityOrderRating',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_notification',\n    'AppEntityOrderNotification',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_event',\n    'AppEntityOrderEvent',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_message',\n    'AppEntityOrderMessage',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_attachment',\n    'AppEntityOrderAttachment',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_file',\n    'AppEntityOrderFile',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_link',\n    'AppEntityOrderLink',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_coupon',\n    'AppEntityOrderCoupon',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_promotion',\n    'AppEntityOrderPromotion',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_gift_card',\n    'AppEntityOrderGiftCard',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_reward',\n    'AppEntityOrderReward',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_subscription',\n    'AppEntityOrderSubscription',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_payment',\n    'AppEntityOrderPayment',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_shipping',\n    'AppEntityOrderShipping',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_return',\n    'AppEntityOrderReturn',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_refund',\n    'AppEntityOrderRefund',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_invoice',\n    'AppEntityOrderInvoice',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_note',\n    'AppEntityOrderNote',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_comment',\n    'AppEntityOrderComment',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_feedback',\n    'AppEntityOrderFeedback',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_review',\n    'AppEntityOrderReview',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_rating',\n    'AppEntityOrderRating',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_notification',\n    'AppEntityOrderNotification',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_event',\n    'AppEntityOrderEvent',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_message',\n    'AppEntityOrderMessage',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_attachment',\n    'AppEntityOrderAttachment',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_file',\n    'AppEntityOrderFile',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_link',\n    'AppEntityOrderLink',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_coupon',\n    'AppEntityOrderCoupon',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_promotion',\n    'AppEntityOrderPromotion',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_gift_card',\n    'AppEntityOrderGiftCard',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_reward',\n    'AppEntityOrderReward',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_subscription',\n    'AppEntityOrderSubscription',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_payment',\n    'AppEntityOrderPayment',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_shipping',\n    'AppEntityOrderShipping',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_return',\n    'AppEntityOrderReturn',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_refund',\n    'AppEntityOrderRefund',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_invoice',\n    'AppEntityOrderInvoice',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_note',\n    'AppEntityOrderNote',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_comment',\n    'AppEntityOrderComment',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_feedback',\n    'AppEntityOrderFeedback',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_review',\n    'AppEntityOrderReview',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_rating',\n    'AppEntityOrderRating',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_notification',\n    'AppEntityOrderNotification',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(\n    $entityManager-&gt;getClassMetadata('AppEntityYourEntity')-&gt;getTableName(),\n    'fk_id_order_event',\n    'AppEntityOrderEvent',\n    'id',\n    'CASCADE'\n);\n\n$entityManager-&gt;flush();\n\n$entityManager-&gt;getConnection()-&gt;getSchemaManager()-&gt;addForeignKey(<\/code><\/pre>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h2>&#20171;&#32461;<\/h2><p>&#22312;&#22788;&#29702;PHP&#24212;&#29992;&#26102;&#65292;&#20351;&#29992;&#23545;&#35937;-&#20851;&#31995;&#26144;&#23556;&#65288;ORM&#65289;&#22914;Doctrine&#26469;&#31649;&#29702;&#25968;&#25454;&#24211;&#25805;&#20316;&#21487;&#20197;&#38750;&#24120;&#39640;&#25928;&#22320;&#23454;&#29616;&#12290;Doctrine&#25552;&#20379;&#20102;&#19968;&#31995;&#21015;&#24378;&#22823;&#30340;&#24037;&#20855;&#65292;&#31616;&#21270;&#20102;&#25968;&#25454;&#24211;&#20132;&#20114;&#12290;&#22312;&#36825;&#31687;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23558;&#25506;&#35752;&#22914;&#20309;&#36890;&#36807;&#26465;&#20214;&#21024;&#38500;&#35760;&#24405;&#30340;&#26041;&#27861;&#65292;&#36825;&#23545;&#20110;&#25968;&#25454;&#25805;&#20316;&#39057;&#32321;&#30340;&#24212;&#29992;&#26469;&#35828;&#29305;&#21035;&#23454;&#29992;&#12290;<\/p><h2>&#24320;&#22987;&#20351;&#29992;Doctrine<\/h2><p>&#22312;&#24320;&#22987;&#21024;&#38500;&#35760;&#24405;&#20043;&#21069;&#65292;&#35831;&#30830;&#20445;&#24744;&#24050;&#23433;&#35013;&#24182;&#37197;&#32622;&#20102;Doctrine&#12290;Doctrine&#21487;&#20197;&#36890;&#36807;Composer&#65288;PHP&#30340;&#20381;&#36182;&#31649;&#29702;&#22120;&#65289;&#36827;&#34892;&#23433;&#35013;&#65292;&#20351;&#29992;&#20197;&#19979;&#21629;&#20196;&#65306;\ncomposer require doctrine\/orm\n&#25110;&#32773;\ncomposer require doctrine\/doctrine-bundle\n&#35831;&#26681;&#25454;&#24744;&#30340;&#39033;&#30446;&#38656;&#27714;&#36873;&#25321;&#21512;&#36866;&#30340;&#21253;&#12290;<\/p><pre><code>composer require doctrine\/orm<\/code><\/pre><p>&#23433;&#35013;&#23436;&#25104;&#21518;&#65292;&#37197;&#32622;Doctrine&#20197;&#36830;&#25509;&#21040;&#25968;&#25454;&#24211;&#12290;&#36825;&#36890;&#24120;&#28041;&#21450;&#35774;&#32622;&ldquo;EntityManager&rdquo;&#65292;&#35813;&#23454;&#20307;&#36127;&#36131;&#36319;&#36394;&#25152;&#26377;&#24744;&#23558;&#25191;&#34892;&#30340;&#25805;&#20316;&#12290;<\/p><h2>&#20351;&#29992;EntityManager<\/h2><p>EntityManager &#26159; Doctrine &#30340;&#26680;&#24515;&#25968;&#25454;&#35775;&#38382;&#21151;&#33021;&#30340;&#20837;&#21475;&#28857;&#12290;&#20197;&#19979;&#26159;&#20351;&#29992; EntityManager &#31227;&#38500;&#35760;&#24405;&#30340;&#19968;&#20010;&#31616;&#21333;&#31034;&#20363;&#65306;<\/p><pre><code>$entityManager = GetEntityManager();\n$product = $entityManager-&gt;getRepository('Product')-&gt;find($id);\nif ($product) {\n    $entityManager-&gt;remove($product);\n    $entityManager-&gt;flush();\n}\n<\/code><\/pre><p>&#35813;&#20195;&#30721;&#26597;&#25214;&#20855;&#26377;&#29305;&#23450;&ldquo;ID&rdquo;&#30340;&#20135;&#21697;&#24182;&#20174;&#25968;&#25454;&#24211;&#20013;&#21024;&#38500;&#65292;&#22914;&#26524;&#23384;&#22312;&#30340;&#35805;&#12290;<\/p><h2>&#26465;&#20214;&#21024;&#38500;&#25805;&#20316;<\/h2><p>&#22914;&#26524;&#20320;&#24819;&#26681;&#25454;&#26465;&#20214;&#21024;&#38500;&#19968;&#26465;&#35760;&#24405;&#65292;&#21487;&#20197;&#20351;&#29992;Criteria API&#25110;DQL&#65288;Doctrine&#26597;&#35810;&#35821;&#35328;&#65289;&#12290;&#20197;&#19979;&#31034;&#20363;&#20351;&#29992;&#20102;DQL&#65306;<\/p><pre><code>$query = $entityManager-&gt;createQuery(\"DELETE FROM Product p WHERE p.name = :name\");\n$query-&gt;setParameter('name', 'MyProduct');\n$query-&gt;execute();\n<\/code><\/pre><p>&#22312;&#36825;&#31181;&#24773;&#20917;&#19979;&#65292;&#22312;&ldquo;&#20135;&#21697;&rdquo;&#23454;&#20307;&#20013;&#26377;&#21517;&#31216;&#20026;&ldquo;MyProduct&rdquo;&#30340;&#35760;&#24405;&#23558;&#20250;&#20174;&#25968;&#25454;&#24211;&#20013;&#21024;&#38500;&#12290;<\/p><h2>&#39640;&#32423;&#21024;&#38500;&#25805;&#20316;<\/h2><p>&#23545;&#20110;&#26356;&#22797;&#26434;&#30340;&#26465;&#20214;&#25110;&#28041;&#21450;&#20851;&#32852;&#30340;&#25805;&#20316;&#65292;&#24744;&#21487;&#20197;&#20805;&#20998;&#21033;&#29992;Doctrine&#30340;&#21151;&#33021;&#65306;<\/p><h3>&#20351;&#29992;Criteria API&#21024;&#38500;&#25805;&#20316;<\/h3><p>Criteria API&#20801;&#35768;&#24744;&#26500;&#24314;&#19968;&#20010;criteria&#23545;&#35937;&#65292;&#35813;&#23545;&#35937;&#21487;&#29992;&#20110;&#36807;&#28388;&#36873;&#25321;&#25110;&#21024;&#38500;&#65306;<\/p><pre><code>use DoctrineCommonCollectionsCriteria;\n\n$criteria = Criteria::create()-&gt;where(Criteria::expr()-&gt;eq(\"name\", \"OldProduct\"));\n$products = $repository-&gt;matching($criteria);\nforeach ($products as $product) {\n    $entityManager-&gt;remove($product);\n}\n$entityManager-&gt;flush();\n<\/code><\/pre><p>&#35813;&#20195;&#30721;&#26500;&#24314;&#20102;&#19968;&#20010;&#21024;&#38500;&#26465;&#20214;&#65292;&#35813;&#26465;&#20214;&#38024;&#23545;&#21517;&#31216;&#20026; &#8216;OldProduct&#8217; &#30340;&#20135;&#21697;&#36827;&#34892;&#21024;&#38500;&#12290;<\/p><h3>&#20107;&#21153;&#24615;&#21024;&#38500;&#25805;&#20316;<\/h3><p>&#20026;&#20102;&#20445;&#25345;&#25968;&#25454;&#30340;&#23436;&#25972;&#24615;&#65292;&#20320;&#21487;&#20197;&#32771;&#34385;&#20351;&#29992;&#20107;&#21153;&#65306;<\/p><pre><code>$entityManager-&gt;transactional(function($entityManager) {\n    $product = $entityManager-&gt;getRepository('Product')-&gt;findOneBy(['name' =&gt; 'MyProduct']);\n    if ($product) {\n        $entityManager-&gt;remove($product);\n    }\n});\n<\/code><\/pre><p>&#36825;&#23558;&#30830;&#20445;&#21024;&#38500;&#25805;&#20316;&#22312;&#20107;&#21153;&#20013;&#25191;&#34892;&#12290;<\/p><h2>&#22788;&#29702;&#24322;&#24120;<\/h2><p>&#22312;&#21024;&#38500;&#35760;&#24405;&#26102;&#65292;&#21487;&#33021;&#20250;&#22240;&#20026;&#22806;&#38190;&#32422;&#26463;&#25110;&#25968;&#25454;&#24211;&#27169;&#24335;&#20013;&#23450;&#20041;&#30340;&#20854;&#20182;&#35268;&#21017;&#32780;&#36935;&#21040;&#24322;&#24120;&#12290;&#37325;&#35201;&#30340;&#26159;&#35201;&#22788;&#29702;&#36825;&#20123;&#24322;&#24120;&#65306;<\/p><pre><code>try {\n    \/\/ Deletion code goes here\n    $entityManager-&gt;flush();\n} catch (DoctrineORMORMException $e) {\n    \/\/ Handle exception (e.g., log it and proceed with a fallback operation)\n}\n<\/code><\/pre><p>&#27491;&#30830;&#22788;&#29702;&#24322;&#24120;&#30830;&#20445;&#24212;&#29992;&#31243;&#24207;&#31283;&#23450;&#65292;&#24182;&#21521;&#29992;&#25143;&#25110;&#35843;&#29992;&#36807;&#31243;&#25552;&#20379;&#26377;&#24847;&#20041;&#30340;&#21453;&#39304;&#12290;<\/p><h2>&#32467;&#35770;<\/h2><p>Doctrine &#20013;&#30340;&#29305;&#23450;&#26465;&#20214;&#21024;&#38500;&#35760;&#24405;&#30340;&#33021;&#21147;&#20351;&#24320;&#21457;&#20154;&#21592;&#33021;&#22815;&#32534;&#20889;&#31616;&#27905;&#19988;&#34920;&#36798;&#21147;&#24378;&#30340;&#25968;&#25454;&#24211;&#25805;&#20316;&#12290;&#36890;&#36807;&#21033;&#29992; DQL &#21644; Criteria API&#65292;&#31934;&#30830;&#30340;&#21024;&#38500;&#21629;&#20196;&#30830;&#20445;&#30456;&#20851;&#25968;&#25454;&#21463;&#21040;&#24433;&#21709;&#24182;&#32500;&#25252;&#31995;&#32479;&#23436;&#25972;&#24615;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312;PHP&#20013;&#65292;&#25105;&#20204;&#21487;&#20197;&#36890;&#36807;&#20351;&#29992;ORM&#65288;&#23545;&#35937;&#20851;&#31995;&#26144;&#23556;&#65289;&#24211;&#22914;Doctrine&#26469;&#36731;&#26494;&#22320;&#20174;&#25968;&#25454;&#24211;&#20013;&#21024;&#38500;&#25968;&#25454;&#12290;&#20197;&#19979;&#26159;&#22914;&#20309;&#26681;&#25454;&#29305;&#23450;&#26465;&#20214;&#21024;&#38500;&#19968;&#26465;&#35760;&#24405;&#30340;&#27493;&#39588;&#65306;<\/p>\n<h3>1. &#39318;&#20808;&#65292;&#30830;&#20445;&#20320;&#24050;&#23433;&#35013;&#20102;PHP&#21644;PDO&#25193;&#23637;&#12290;<\/h3>\n<pre><code class=\"language-bash\">sudo apt-get install php-pdo<\/code><\/pre>\n<h3>2. &#23433;&#35013;Doctrine ORM<\/h3>\n<ul>\n<li>\n<p>&#22914;&#26524;&#20320;&#36824;&#27809;&#26377;&#23433;&#35013;&#65292;&#21487;&#20197;&#20351;&#29992;Composer&#26469;&#23433;&#35013;&#65306;<\/p>\n<pre><code class=\"language-bash\">composer require doctrine\/orm<\/code><\/pre>\n<\/li>\n<li>\n<p>&#25110;&#32773;&#25163;&#21160;&#19979;&#36733;&#24182;&#32534;&#35793;&#65306;<\/p>\n<pre><code class=\"language-bash\">git clone https:\/\/github.com\/doctrine\/orm.git\ncd doctrine-orm\nphpize\n.\/configure --with-php-config=\/usr\/local\/bin\/php-config\nmake<\/code><\/pre>\n<\/li>\n<\/ul>\n<h3>3. &#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#23454;&#20307;&#31867;&#65288;&#20551;&#35774;&#21517;&#20026;<code>User.php<\/code>&#65289;<\/h3>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppEntity;\n\nuse DoctrineORMMapping as ORM;\nuse SymfonyComponentValidatorConstraints as Assert;\n\n\/**\n * @ORMEntity(repositoryClass=\"AppRepositoryUserRepository\")\n *\/\nclass User\n{\n    \/**\n     * @ORMId()\n     * @ORMGeneratedValue()\n     * @ORMColumn(type=\"integer\")\n     *\/\n    private $id;\n\n    \/**\n     * @AssertNotBlank(message=\"Username is required.\")\n     * @ORMColumn(type=\"string\", length=64, unique=true)\n     *\/\n    private $username;\n\n    \/**\n     * @ORMColumn(type=\"string\", length=128)\n     *\/\n    private $password;\n\n    \/\/ getters and setters for other fields...\n}<\/code><\/pre>\n<h3>4. &#20351;&#29992;ORM&#21019;&#24314;&#19968;&#20010;Repository&#25509;&#21475;<\/h3>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppRepository;\n\nuse DoctrinePersistenceObjectManager;\nuse DoctrineORMQueryBuilder;\n\ninterface UserRepositoryInterface extends DoctrineORMProxyProxy\n{\n    public function deleteById($id): bool;\n}\n\n\/\/ Example of how to use the repository interface:\n$userRepository = new UserRepository();\n$deleteResult = $userRepository-&gt;deleteById(1);\necho \"Deleted user with ID: \" . $deleteResult;<\/code><\/pre>\n<h3>5. &#23454;&#29616;Delete&#26041;&#27861;<\/h3>\n<pre><code class=\"language-php\">public function deleteById($id): bool\n{\n    if ($this-&gt;find($id) === null) {\n        return false; \/\/ User not found\n    }\n\n    $entityManager = EntityManager::getEntityManager();\n\n    \/\/ Use the QueryBuilder to construct a DELETE statement\n    $qb = $entityManager-&gt;createQueryBuilder();\n    $qb-&gt;delete(User::class)-&gt;where('u.id = :id')-&gt;setParameter('id', $id);\n\n    \/\/ Execute the query and get the number of affected rows (1 means success)\n    $affectedRows = $qb-&gt;execute();\n\n    \/\/ Return true if at least one row was deleted, false otherwise\n    return $affectedRows &gt; 0;\n}<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#39318;&#20808;&#26816;&#26597;&#29992;&#25143;&#26159;&#21542;&#23384;&#22312;&#65292;&#28982;&#21518;&#36890;&#36807;ORM&#25191;&#34892;DELETE&#35821;&#21477;&#12290;&#36825;&#23558;&#26681;&#25454;&#24744;&#35774;&#32622;&#30340;ID&#21024;&#38500;&#25351;&#23450;&#30340;&#29992;&#25143;&#12290;<\/p>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppController;\n\nuse AppEntityUser;\nuse AppRepositoryUserRepository;\nuse SymfonyBundleFrameworkBundleControllerAbstractController;\nuse SymfonyComponentHttpFoundationRequest;\nuse SymfonyComponentRoutingAnnotationRoute;\n\nclass UserController extends AbstractController\n{\n    #[Route('\/users\/{id}', name: 'app_users_show')]\n    public function showUserAction(Request $request, $id): Response\n    {\n        $repository = $this-&gt;getDoctrine()-&gt;getRepository(User::class);\n        $user = $repository-&gt;findById($id);\n\n        return $this-&gt;render('users\/show.html.twig', [\n            'user' =&gt; $user,\n        ]);\n    }\n}<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#25511;&#21046;&#22120;&#20013;&#30340;<code>showUserAction<\/code>&#26041;&#27861;&#65292;&#25105;&#20204;&#35843;&#29992;&#20102;<code>findById<\/code>&#26041;&#27861;&#65292;&#24182;&#19988;&#22914;&#26524;&#25214;&#21040;&#35813;&#29992;&#25143;&#65292;&#25105;&#20204;&#23558;&#36820;&#22238;&#28210;&#26579;&#21518;&#30340;&#27169;&#26495;&#26174;&#31034;&#35813;&#29992;&#25143;&#30340;&#20449;&#24687;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#22909;&#30340;&#65292;&#35753;&#25105;&#20204;&#26469;&#25506;&#35752;&#22914;&#20309;&#20351;&#29992; PHP &#21644; Doctrine ORM &#038;..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[45],"tuisongtax":[],"class_list":["post-1132","my1js","type-my1js","status-publish","hentry","my1js2nav-symfony"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/1132","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=1132"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=1132"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=1132"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=1132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}