{"id":1124,"date":"2025-06-12T13:34:16","date_gmt":"2025-06-12T05:34:16","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/symfony\/1124.html"},"modified":"2025-06-12T13:34:16","modified_gmt":"2025-06-12T05:34:16","slug":"%e5%a6%82%e4%bd%95%e5%9c%a8-doctrine-%e4%b8%ad%e6%b7%bb%e5%8a%a0%e6%97%a0%e7%ac%a6%e5%8f%b7%e6%95%b4%e6%95%b0%e5%88%97","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/1124.html","title":{"rendered":"\u5982\u4f55\u5728 Doctrine \u4e2d\u6dfb\u52a0\u65e0\u7b26\u53f7\u6574\u6570\u5217"},"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>&#22312; Doctrine &#20013;&#28155;&#21152;&#26080;&#31526;&#21495;&#25972;&#25968;&#21015;&#65288;UNSIGNED&#65289;&#36890;&#24120;&#28041;&#21450;&#21019;&#24314;&#19968;&#20010;&#23454;&#20307;&#31867;&#65292;&#24182;&#20351;&#29992; <code>@Column<\/code> &#27880;&#35299;&#26469;&#23450;&#20041;&#36825;&#20010;&#21015;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#31034;&#20363;&#20195;&#30721;&#65292;&#23637;&#31034;&#20102;&#22914;&#20309;&#22312; Doctrine &#20013;&#28155;&#21152;&#26080;&#31526;&#21495;&#25972;&#25968;&#21015;&#65306;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppEntity;\n\nuse DoctrineORMMapping as ORM;\n\n\/**\n * @ORMEntity(repositoryClass=\"AppRepositoryMyEntityRepository\")\n *\/\nclass MyEntity\n{\n    \/**\n     * @ORMId\n     * @ORMGeneratedValue(strategy=\"AUTO\")\n     * @ORMColumn(type=\"integer\")\n     *\/\n    private $id;\n\n    \/**\n     * @ORMColumn(type=\"unsigned_int\")\n     *\/\n    private $unsignedInteger;\n\n    \/\/ Getters and setters\n}<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#31034;&#20363;&#20013;&#65306;<\/p>\n<ol>\n<li><code>@ORMEntity<\/code> &#21644; <code>@ORMTable<\/code> &#27880;&#35299;&#29992;&#20110;&#23450;&#20041;&#23454;&#20307;&#21644;&#34920;&#12290;<\/li>\n<li><code>@ORMId<\/code> &#21644; <code>@ORMGeneratedValue(strategy=\"AUTO\")<\/code> &#27880;&#35299;&#29992;&#20110;&#23450;&#20041;&#20027;&#38190;&#24182;&#35774;&#32622;&#29983;&#25104;&#31574;&#30053;&#20026;&#33258;&#21160;&#36882;&#22686;&#12290;<\/li>\n<li><code>@ORMColumn(type=\"integer\")<\/code> &#27880;&#35299;&#29992;&#20110;&#23450;&#20041;&#25972;&#25968;&#31867;&#22411;&#12290;<\/li>\n<li><code>@ORMColumn(type=\"unsigned_int\")<\/code> &#27880;&#35299;&#29992;&#20110;&#23450;&#20041;&#26080;&#31526;&#21495;&#25972;&#25968;&#31867;&#22411;&#12290;<\/li>\n<\/ol>\n<p>&#22914;&#26524;&#20320;&#38656;&#35201;&#22312;&#25968;&#25454;&#24211;&#20013;&#21019;&#24314;&#36825;&#20010;&#34920;&#32467;&#26500;&#65292;&#21487;&#20197;&#20351;&#29992; Doctrine &#30340;&#36801;&#31227;&#21151;&#33021;&#12290;&#39318;&#20808;&#65292;&#30830;&#20445;&#20320;&#24050;&#32463;&#23433;&#35013;&#20102; Doctrine&#65292;&#24182;&#19988;&#37197;&#32622;&#22909;&#20102;&#25968;&#25454;&#24211;&#36830;&#25509;&#20449;&#24687;&#12290;&#28982;&#21518;&#65292;&#20320;&#21487;&#20197;&#36816;&#34892;&#20197;&#19979;&#21629;&#20196;&#26469;&#29983;&#25104;&#36801;&#31227;&#25991;&#20214;&#65306;<\/p>\n<pre><code class=\"language-bash\">php bin\/console doctrine:migrations:generate<\/code><\/pre>\n<p>&#25509;&#19979;&#26469;&#65292;&#24212;&#29992;&#36825;&#20123;&#36801;&#31227;&#25991;&#20214;&#20197;&#21019;&#24314;&#34920;&#32467;&#26500;&#65306;<\/p>\n<pre><code class=\"language-bash\">php bin\/console doctrine:migrations:migrate<\/code><\/pre>\n<p>&#36825;&#26679;&#65292;&#20320;&#23601;&#25104;&#21151;&#22320;&#22312; Doctrine &#20013;&#28155;&#21152;&#20102;&#19968;&#20010;&#26080;&#31526;&#21495;&#25972;&#25968;&#21015;&#12290;<\/p>\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>&#27010;&#35272;<\/h2><p>&#28155;&#21152;&#21040;&#25968;&#25454;&#24211;&#27169;&#24335;&#20013;&#30340;&#26410;&#26631;&#21495;&#25972;&#25968;&#21015;&#20351;&#29992;Doctrine ORM&#21487;&#33021;&#19968;&#24320;&#22987;&#30475;&#36215;&#26469;&#26377;&#20123;&#22256;&#38590;&#65292;&#20294;&#36890;&#36807;&#29702;&#35299;&#19968;&#20123;&#20851;&#38190;&#27010;&#24565;&#21644;&#27493;&#39588;&#65292;&#23427;&#21464;&#24471;&#30456;&#24403;&#31616;&#21333;&#12290;&#22312;&#36825;&#31687;&#25351;&#21335;&#20013;&#65292;&#25105;&#20204;&#23558;&#24102;&#20320;&#36208;&#19968;&#36941;&#27969;&#31243;&#65292;&#21516;&#26102;&#30830;&#20445;&#21253;&#21547;&#19968;&#20123;&#24110;&#21161;&#24615;&#30340;&#20195;&#30721;&#31034;&#20363;&#12290;<\/p><h3>&#29702;&#35299;&#26080;&#31526;&#21495;&#25972;&#25968;<\/h3><p>&#22312;&#28145;&#20837;&#20043;&#21069;&#65292;&#37325;&#35201;&#30340;&#26159;&#35201;&#29702;&#35299;&#26080;&#31526;&#21495;&#25972;&#25968;&#26159;&#20160;&#20040;&#12290;&#22312;&#25968;&#25454;&#24211;&#26415;&#35821;&#20013;&#65292;&#25972;&#25968;&#36890;&#24120;&#21487;&#20197;&#26159;&ldquo;&#26377;&#31526;&#21495;&rdquo;&#25110;&ldquo;&#26080;&#31526;&#21495;&rdquo;&#12290;&#19968;&#20010;&#26377;&#31526;&#21495;&#25972;&#25968;&#21487;&#20197;&#21516;&#26102;&#23481;&#32435;&#27491;&#36127;&#20540;&#65292;&#32780;&#19968;&#20010;&#26080;&#31526;&#21495;&#25972;&#25968;&#21482;&#33021;&#23481;&#32435;&#27491;&#20540;&#65288;&#21253;&#25324;&#38646;&#65289;&#12290;<\/p><p>&#22312;Doctrine&#20013;&#65292;unsigned&#25972;&#25968;&#19981;&#26159;&#23448;&#26041;&#30340;DBAL&#65288;&#25968;&#25454;&#24211;&#25277;&#35937;&#23618;&#65289;&#24179;&#21488;&#30340;&#19968;&#37096;&#20998;&#65292;&#22240;&#27492;&#38656;&#35201;&#20351;&#29992;&#33258;&#23450;&#20041;&#21015;&#23450;&#20041;&#25110;&#24179;&#21488;&#20107;&#20214;&#26469;&#28155;&#21152;&#19968;&#20010;&#12290;<\/p><h3>&#21069;&#32622;&#26465;&#20214;<\/h3><p>&#35201;&#20174;&#26412;&#25945;&#31243;&#20013;&#33719;&#24471;&#26368;&#22823;&#25910;&#30410;&#65292;&#24744;&#24212;&#35813;&#20855;&#22791;&#20197;&#19979;&#26465;&#20214;&#65306;<\/p><p>&#22312;&#29616;&#26377;&#30340;Doctrine&#23454;&#20307;&#20013;&#65292;&#24744;&#24076;&#26395;&#28155;&#21152;&#19968;&#20010;&#21015;&#12290;<\/p><p>&#23545;Doctrine ORM&#30340;&#29702;&#35299;<\/p><p>PHP&#30340;&#22522;&#26412;&#30693;&#35782;&#12290;<\/p><h2>&#22312;Doctrine&#20013;&#28155;&#21152;&#19968;&#20010;&#26080;&#31526;&#21495;&#25972;&#25968;&#21015;&#12290;<\/h2><p>&#35753;&#25105;&#20204;&#20174;&#22914;&#20309;&#22312;Doctrine&#23454;&#20307;&#20013;&#28155;&#21152;&#26080;&#31526;&#21495;&#25972;&#25968;&#24320;&#22987;&#25506;&#35752;&#12290;<\/p><h3>&#27493;&#39588;1&#65306;&#20462;&#25913;&#23454;&#20307;&#31867;<\/h3><p>&#35831;&#25552;&#20379;&#38656;&#35201;&#28155;&#21152;&#30340;&#23646;&#24615;&#21517;&#31216;&#21644;&#31867;&#22411;&#65292;&#20197;&#20415;&#25105;&#20026;&#24744;&#29983;&#25104;&#30456;&#24212;&#30340;Entity&#31867;&#20195;&#30721;&#12290;<\/p><pre><code>&lt;?php\nnamespace AppEntity;\n\nuse DoctrineORMMapping as ORM;\n\nclass YourEntity\n{\n    \/****\n     * @ORMColumn(type=\"integer\", options={\"unsigned\"=true})\n     * @var int\n     ****\/\n    private $unsignedIntColumn;\n\n    \/\/ ... getter and setter methods ...\n}\n<\/code><\/pre><p>&#35831;&#27880;&#24847;&#65292;&#22312;&#27880;&#35299;&#26102;&#65292;&#25105;&#20204;&#22312;&#36873;&#39033;&#25968;&#32452;&#20013;&#35774;&#32622;&lsquo;unsigned&rsquo;&#20026;true&#12290;<\/p><h3>&#27493;&#39588;2&#65306;&#26356;&#26032;&#26550;&#26500;<\/h3><p>&#25509;&#19979;&#26469;&#65292;&#20320;&#38656;&#35201;&#26356;&#26032;&#20320;&#30340;&#27169;&#24335;&#65288;schema&#65289;&#12290;&#21487;&#20197;&#20351;&#29992;&#21629;&#20196;&#34892;&#24037;&#20855;&#26469;&#23436;&#25104;&#65306;<\/p><pre><code>php bin\/console doctrine:schema:update --force <\/code><\/pre><p>&#36825;&#23558;&#24212;&#29992;&#26356;&#25913;&#24182;&#21019;&#24314;&#19968;&#20010;&#26681;&#25454;&#23454;&#20307;&#23450;&#20041;&#30340;&#26410;&#31614;&#21517;&#25972;&#25968;&#21015;&#12290;&#35831;&#27880;&#24847;&#65292;&#27492;&#25805;&#20316;&#23558;&#22312;&#24744;&#30340;&#25968;&#25454;&#24211;&#19978;&#30452;&#25509;&#25191;&#34892;&#65292;&#22240;&#27492;&#35831;&#30830;&#20445;&#24050;&#22791;&#20221;&#25968;&#25454;&#25110;&#22788;&#20110;&#24320;&#21457;&#29615;&#22659;&#20013;&#12290;<\/p><h3>&#27493;&#39588; 3&#65306;&#32534;&#20889;&#36801;&#31227;&#35745;&#21010;<\/h3><p>&#24403;&#28982;&#65292;&#20320;&#21487;&#20197;&#20026;&#36825;&#20010;&#21464;&#26356;&#32534;&#20889;&#19968;&#20010;Doctrine&#36801;&#31227;&#12290;&#39318;&#20808;&#65292;&#20351;&#29992;&#20197;&#19979;&#21629;&#20196;&#29983;&#25104;&#19968;&#20010;&#26032;&#30340;&#36801;&#31227;&#25991;&#20214;&#65306;<\/p><pre><code>php bin\/console doctrine:migrations:diff<\/code><\/pre><p>&#36825;&#23558;&#22312;&#36801;&#31227;&#31867;&#25991;&#20214;&#20013;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#36801;&#31227;&#31867;&#12290;<code>migrations<\/code>&#30446;&#24405;&#12290;&#28982;&#21518;&#20320;&#21487;&#20197;&#25163;&#21160;&#35843;&#25972;&#36801;&#31227;&#30340;SQL&#20197;&#30830;&#20445;&#26032;&#21015;&#26159;&#38750;&#36127;&#30340;&#65306;<\/p><pre><code>&lt;?php\ndeclare(strict_types=1);\n\nnamespace DoctrineMigrations;\n\nuse DoctrineDBALSchemaSchema;\nuse DoctrineMigrationsAbstractMigration;\n\nclass VersionYourVersionNumber extends AbstractMigration\n{\n    public function getDescription(): string\n    {\n        return 'Add unsigned integer column';\n    }\n\n    \/\/ ... other migration methods ...\n\n    public function up(Schema $schema): void\n    {\n        $this-&gt;addSql('ALTER TABLE your_table ADD unsigned_int_column INT UNSIGNED');\n    }\n\n    public function down(Schema $schema): void\n    {\n        $this-&gt;addSql('ALTER TABLE your_table DROP unsigned_int_column');\n    }\n}<\/code><\/pre><p>&#35843;&#25972;&#36801;&#31227;&#25991;&#20214;&#21518;&#65292;&#21487;&#20197;&#24212;&#29992;&#36801;&#31227;&#65306;<\/p><pre><code>php bin\/console doctrine:migrations:migrate<\/code><\/pre><h2>&#29305;&#23450;&#25968;&#25454;&#24211;&#24179;&#21488;&#30340;&#27880;&#24847;&#20107;&#39033;<\/h2><p>&#38656;&#35201;&#27880;&#24847;&#30340;&#26159;&#65292;unsigned&#25972;&#25968;&#30340;&#25903;&#25345;&#22312;&#24179;&#21488;&#19978;&#26377;&#20381;&#36182;&#24615;&#12290;&#20363;&#22914;&#65292;MySQL&#25903;&#25345;&#20869;&#32622;&#30340;unsigned&#25972;&#25968;&#65292;&#32780;PostgreSQL&#21017;&#19981;&#25903;&#25345;&#12290;&#23545;&#20110;&#27809;&#26377;unsigned&#25972;&#25968;&#25903;&#25345;&#30340;&#25968;&#25454;&#24211;&#65292;Doctrine&#21487;&#33021;&#35201;&#20040;&#26080;&#27861;&#21019;&#24314;&#21015;&#65292;&#35201;&#20040;&#23558;&#20854;&#21019;&#24314;&#20026;&#26222;&#36890;&#25972;&#25968;&#21015;&#12290;<\/p><p>&#22312;&#25968;&#25454;&#24211;&#19981;&#25903;&#25345;&#26080;&#31526;&#21495;&#25972;&#25968;&#30340;&#24773;&#20917;&#19979;&#65292;&#19968;&#31181;&#35299;&#20915;&#26041;&#26696;&#26159;&#20351;&#29992;&#20107;&#20214;&#30417;&#21548;&#22120;&#20462;&#25913;Doctrine&#29983;&#25104;&#30340;SQL&#35821;&#21477;&#65292;&#20197;&#31649;&#29702;&#25968;&#25454;&#24211;&#27169;&#24335;&#12290;<\/p><h3>&#20351;&#29992;&#20107;&#20214;&#30417;&#21548;&#22120;<\/h3><p>&#20197;&#19979;&#26159;&#35774;&#32622;&#24179;&#21488;&#29305;&#23450;&#20107;&#20214;&#30417;&#21548;&#22120;&#30340;&#26041;&#27861;&#65306;<\/p><pre><code>\/\/ src\/EventListener\/UnsignedIntegerSubscriber.php\n\nnamespace AppEventListener;\n\nuse DoctrineCommonEventSubscriber;\nuse DoctrineDBALPlatform;\nuse DoctrineDBALEvents;\nuse DoctrineDBALEventSchemaCreateTableColumnEventArgs;\n\nclass UnsignedIntegerSubscriber implements EventSubscriber\n{\n    public function getSubscribedEvents()\n    {\n        return [\n            Events::onSchemaCreateTableColumn\n        ];\n    }\n\n    public function onSchemaCreateTableColumn(SchemaCreateTableColumnEventArgs $args)\n    {\n        $column = $args-&gt;getColumn();\n        if ($column-&gt;getType()-&gt;getName() === 'integer' &amp;&amp; $column-&gt;getUnsigned()) {\n            $platform = $args-&gt;getPlatform();\n            if (!$platform instanceof PlatformMySqlPlatform) {\n                \/\/ Modify the SQL for platforms that do not support unsigned integers\n            }\n        }\n    }\n}\n<\/code><\/pre><p>&#22312;&#19978;&#36848;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#30340;&#20107;&#20214;&#30417;&#21548;&#22120;&#20250;&#26816;&#26597;&#27491;&#22312;&#21019;&#24314;&#30340;&#21015;&#26159;&#21542;&#20026;&#25972;&#25968;&#31867;&#22411;&#65292;&#24182;&#19988;&#22914;&#26524;&#26159;&#26080;&#31526;&#21495;&#25972;&#25968;&#12290;&#22914;&#26524;&#24213;&#23618;&#24179;&#21488;&#19981;&#25903;&#25345;&#26080;&#31526;&#21495;&#25972;&#25968;&#65292;&#21017;&#21487;&#20197;&#36890;&#36807;&#35843;&#25972;SQL&#26469;&#36866;&#24212;&#36825;&#31181;&#24773;&#20917;&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>&#32508;&#19978;&#25152;&#36848;&#65292;&#22312;&#20351;&#29992;Doctrine&#31649;&#29702;&#25968;&#25454;&#24211;&#26102;&#65292;&#28155;&#21152;&#19968;&#20010;&#26080;&#31526;&#21495;&#25972;&#25968;&#21015;&#38656;&#35201;&#29305;&#21035;&#32771;&#34385;&#65292;&#20294;&#23436;&#20840;&#26377;&#21487;&#33021;&#23454;&#29616;&#12290;&#36890;&#36807;&#36981;&#24490;&#26412;&#25991;&#20013;&#30340;&#35814;&#32454;&#27493;&#39588;&#65292;&#20462;&#25913;&#23454;&#20307;&#12289;&#32534;&#20889;&#36801;&#31227;&#25991;&#20214;&#65292;&#24182;&#22312;&#24517;&#35201;&#26102;&#20351;&#29992;&#20107;&#20214;&#30417;&#21548;&#22120;&#65292;&#24744;&#21487;&#20197;&#25104;&#21151;&#22320;&#22312;&#19981;&#21516;&#25968;&#25454;&#24211;&#24179;&#21488;&#19978;&#36328;&#24179;&#21488;&#31649;&#29702;&#26080;&#31526;&#21495;&#25972;&#25968;&#21015;&#12290;<\/p><p>&#35831;&#21153;&#24517;&#22312;&#24212;&#29992;&#21040;&#29983;&#20135;&#25968;&#25454;&#24211;&#20043;&#21069;&#65292;&#22312;&#23433;&#20840;&#30340;&#24320;&#21457;&#29615;&#22659;&#20013;&#27979;&#35797;&#24744;&#30340;&#26356;&#25913;&#12290;&#24841;&#24555;&#32534;&#30721;&#65281;<\/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; Doctrine ORM &#20013;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992; <code>Column<\/code> &#31867;&#26469;&#23450;&#20041;&#34920;&#20013;&#30340;&#23383;&#27573;&#12290;&#20026;&#20102;&#28155;&#21152;&#19968;&#20010;&#26080;&#31526;&#21495;&#25972;&#25968;&#21015;&#65292;&#20320;&#38656;&#35201;&#30830;&#20445;&#25968;&#25454;&#24211;&#25903;&#25345;&#26080;&#31526;&#21495;&#25972;&#25968;&#31867;&#22411;&#65292;&#24182;&#19988;&#20320;&#30340;&#34920;&#32467;&#26500;&#20801;&#35768;&#20320;&#36825;&#26679;&#20570;&#12290;<\/p>\n<p>&#20197;&#19979;&#26159;&#22914;&#20309;&#22312; Doctrine &#20013;&#21019;&#24314;&#19968;&#20010;&#26080;&#31526;&#21495;&#25972;&#25968;&#21015;&#30340;&#31034;&#20363;&#65306;<\/p>\n<ol>\n<li>\n<p>&#39318;&#20808;&#65292;&#30830;&#20445;&#20320;&#30340;&#25968;&#25454;&#24211;&#25903;&#25345;&#26080;&#31526;&#21495;&#25972;&#25968;&#31867;&#22411;&#12290;&#36825;&#36890;&#24120;&#21462;&#20915;&#20110;&#20320;&#30340;&#25968;&#25454;&#24211;&#31995;&#32479;&#65288;&#22914; MySQL, PostgreSQL, Oracle &#31561;&#65289;&#12290;&#22914;&#26524;&#38656;&#35201;&#30340;&#35805;&#65292;&#35831;&#26597;&#38405;&#20320;&#30340;&#25968;&#25454;&#24211;&#25991;&#26723;&#20102;&#35299;&#20854;&#25903;&#25345;&#30340;&#25972;&#25968;&#31867;&#22411;&#12290;<\/p>\n<\/li>\n<li>\n<p>&#22312; Doctrine &#30340;&#31867;&#23450;&#20041;&#20013;&#65292;&#20351;&#29992; <code>DoctrineORMMappingColumn<\/code> &#27880;&#35299;&#26469;&#25351;&#23450;&#23383;&#27573;&#21517;&#31216;&#21644;&#25968;&#25454;&#31867;&#22411;&#12290;&#20363;&#22914;&#65292;&#22914;&#26524;&#20320;&#26377;&#19968;&#20010;&#21517;&#20026; <code>my_integer_column<\/code> &#30340;&#23383;&#27573;&#65292;&#21487;&#20197;&#36825;&#26679;&#23450;&#20041;&#65306;<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"language-php\">public class MyEntity\n{\n    @Column(type=\"integer\", unsigned=true)\n    private $myIntegerColumn;\n}<\/code><\/pre>\n<ol start=\"3\">\n<li>\n<p>&#20445;&#23384;&#24182;&#32534;&#35793;&#20320;&#30340;&#23454;&#20307;&#31867;&#12290;&#22312; Doctrine &#20013;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;&#36816;&#34892; <code>php bin\/console doctrine:generate-entity<\/code> &#21629;&#20196;&#26469;&#29983;&#25104;&#19968;&#20010;&#26032;&#30340;&#23454;&#20307;&#31867;&#25991;&#20214;&#12290;<\/p>\n<\/li>\n<li>\n<p>&#21019;&#24314;&#19968;&#20010;&#23384;&#20648;&#35813;&#23454;&#20307;&#30340;&#34920;&#12290;&#22312; SQL &#26597;&#35810;&#23383;&#31526;&#20018;&#20013;&#65292;&#20351;&#29992; <code>unsigned<\/code> &#21442;&#25968;&#25351;&#23450;&#26080;&#31526;&#21495;&#25972;&#25968;&#31867;&#22411;&#12290;&#20363;&#22914;&#65306;<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"language-sql\">CREATE TABLE `my_table` (\n    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,\n    `my_integer_column` int(10) unsigned DEFAULT NULL,\n    PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8;<\/code><\/pre>\n<ol start=\"5\">\n<li>&#22312;&#24212;&#29992;&#31243;&#24207;&#20195;&#30721;&#20013;&#65292;&#21487;&#20197;&#36890;&#36807; <code>$em-&gt;getRepository(MyEntity::class)-&gt;find($id)<\/code> &#26469;&#33719;&#21462;&#20855;&#26377;&#26080;&#31526;&#21495;&#25972;&#25968;&#21015;&#30340;&#23454;&#20307;&#23454;&#20363;&#12290;<\/li>\n<\/ol>\n<p>&#20197;&#19978;&#23601;&#26159;&#22312; Doctrine &#20013;&#20026;&#34920;&#28155;&#21152;&#26080;&#31526;&#21495;&#25972;&#25968;&#21015;&#30340;&#22522;&#26412;&#27493;&#39588;&#12290;&#35831;&#26681;&#25454;&#20320;&#30340;&#20855;&#20307;&#38656;&#27714;&#35843;&#25972;&#20195;&#30721;&#21644;&#21442;&#25968;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#22312; Doctrine &#20013;&#28155;&#21152;&#26080;&#31526;&#21495;&#25972;&#25968;&#21015;&#65288;UNSIGNED&#65289;&#36890;&#24120;&#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-1124","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\/1124","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=1124"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=1124"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=1124"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=1124"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}