{"id":1015,"date":"2025-06-12T04:54:56","date_gmt":"2025-06-11T20:54:56","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/1015.html"},"modified":"2025-06-12T04:54:56","modified_gmt":"2025-06-11T20:54:56","slug":"laravel-eloquent%ef%bc%9a%e4%bd%bf%e7%94%a8%e8%bf%81%e7%a7%bb%e6%9b%b4%e6%94%b9%e5%88%97%e7%b1%bb%e5%9e%8b","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/1015.html","title":{"rendered":"Laravel Eloquent\uff1a\u4f7f\u7528\u8fc1\u79fb\u66f4\u6539\u5217\u7c7b\u578b"},"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>Laravel &#26159;&#19968;&#20010;&#38750;&#24120;&#27969;&#34892;&#30340; PHP &#26694;&#26550;&#65292;&#29992;&#20110;&#26500;&#24314; Web &#24212;&#29992;&#31243;&#24207;&#12290;Eloquent &#26159; Laravel &#30340; ORM&#65288;&#23545;&#35937;&#20851;&#31995;&#26144;&#23556;&#65289;&#65292;&#23427;&#31616;&#21270;&#20102;&#25968;&#25454;&#24211;&#25805;&#20316;&#12290;&#36801;&#31227;&#26159; Laravel &#20013;&#29992;&#20110;&#31649;&#29702;&#25968;&#25454;&#24211;&#32467;&#26500;&#30340;&#24037;&#20855;&#12290;&#20170;&#22825;&#65292;&#25105;&#20204;&#23558;&#23398;&#20064;&#22914;&#20309;&#20351;&#29992; Laravel Eloquent &#26356;&#25913;&#34920;&#20013;&#30340;&#21015;&#31867;&#22411;&#12290;<\/p>\n<h3>1. &#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#36801;&#31227;<\/h3>\n<p>&#39318;&#20808;&#65292;&#25105;&#20204;&#38656;&#35201;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#36801;&#31227;&#25991;&#20214;&#12290;&#25171;&#24320;&#32456;&#31471;&#24182;&#36816;&#34892;&#20197;&#19979;&#21629;&#20196;&#65306;<\/p>\n<pre><code class=\"language-bash\">php artisan make:migration change_column_type<\/code><\/pre>\n<p>&#36825;&#23558;&#29983;&#25104;&#19968;&#20010;&#21517;&#20026; <code>change_column_type<\/code> &#30340;&#36801;&#31227;&#25991;&#20214;&#12290;<\/p>\n<h3>2. &#32534;&#36753;&#36801;&#31227;&#25991;&#20214;<\/h3>\n<p>&#25171;&#24320;&#29983;&#25104;&#30340;&#36801;&#31227;&#25991;&#20214; <code>database\/migrations\/2023_04_01_000000_change_column_type.php<\/code>&#65292;&#24182;&#22312;&#20854;&#20013;&#20462;&#25913;&#21015;&#31867;&#22411;&#12290;<\/p>\n<pre><code class=\"language-php\">use IlluminateDatabaseMigrationsMigration;\nuse IlluminateDatabaseSchemaBlueprint;\nuse IlluminateSupportFacadesSchema;\n\nclass ChangeColumnType extends Migration\n{\n    \/**\n     * Run the migrations.\n     *\n     * @return void\n     *\/\n    public function up()\n    {\n        Schema::table('users', function (Blueprint $table) {\n            \/\/ &#20462;&#25913; 'email' &#21015;&#30340;&#31867;&#22411;&#20026; VARCHAR(255)\n            $table-&gt;string('email')-&gt;nullable()-&gt;change();\n        });\n    }\n\n    \/**\n     * Reverse the migrations.\n     *\n     * @return void\n     *\/\n    public function down()\n    {\n        Schema::table('users', function (Blueprint $table) {\n            \/\/ &#23558; 'email' &#21015;&#30340;&#31867;&#22411;&#24674;&#22797;&#20026; TEXT\n            $table-&gt;text('email')-&gt;nullable()-&gt;change();\n        });\n    }\n}<\/code><\/pre>\n<h3>3. &#36816;&#34892;&#36801;&#31227;<\/h3>\n<p>&#29616;&#22312;&#65292;&#25105;&#20204;&#21487;&#20197;&#36816;&#34892;&#36825;&#20010;&#36801;&#31227;&#26469;&#25913;&#21464;&#21015;&#31867;&#22411;&#65306;<\/p>\n<pre><code class=\"language-bash\">php artisan migrate<\/code><\/pre>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#35753;&#25105;&#20204;&#26469;&#30475;&#19968;&#19979;&#23436;&#25972;&#30340;&#31034;&#20363;&#20195;&#30721;&#65292;&#21253;&#25324;&#21019;&#24314;&#36801;&#31227;&#12289;&#32534;&#36753;&#36801;&#31227;&#21644;&#36816;&#34892;&#36801;&#31227;&#12290;<\/p>\n<h4>1. &#21019;&#24314;&#36801;&#31227;<\/h4>\n<pre><code class=\"language-bash\">php artisan make:migration change_column_type<\/code><\/pre>\n<h4>2. &#32534;&#36753;&#36801;&#31227;&#25991;&#20214;<\/h4>\n<pre><code class=\"language-php\">\/\/ database\/migrations\/2023_04_01_000000_change_column_type.php\nuse IlluminateDatabaseMigrationsMigration;\nuse IlluminateDatabaseSchemaBlueprint;\nuse IlluminateSupportFacadesSchema;\n\nclass ChangeColumnType extends Migration\n{\n    \/**\n     * Run the migrations.\n     *\n     * @return void\n     *\/\n    public function up()\n    {\n        Schema::table('users', function (Blueprint $table) {\n            $table-&gt;string('email')-&gt;nullable()-&gt;change();\n        });\n    }\n\n    \/**\n     * Reverse the migrations.\n     *\n     * @return void\n     *\/\n    public function down()\n    {\n        Schema::table('users', function (Blueprint $table) {\n            $table-&gt;text('email')-&gt;nullable()-&gt;change();\n        });\n    }\n}<\/code><\/pre>\n<h4>3. &#36816;&#34892;&#36801;&#31227;<\/h4>\n<pre><code class=\"language-bash\">php artisan migrate<\/code><\/pre>\n<p>&#36890;&#36807;&#36825;&#20123;&#27493;&#39588;&#65292;&#25105;&#20204;&#25104;&#21151;&#22320;&#20351;&#29992; Laravel Eloquent &#26356;&#25913;&#20102;&#34920;&#20013;&#30340;&#21015;&#31867;&#22411;&#12290;&#24076;&#26395;&#36825;&#23545;&#20320;&#26377;&#24110;&#21161;&#65281;<\/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>&#20171;&#32461;<\/h2><p>Laravel&#30340;Eloquent ORM&#25552;&#20379;&#20102;&#19968;&#31181;&#20248;&#38597;&#19988;&#39640;&#25928;&#30340;&#19982;&#25968;&#25454;&#24211;&#20132;&#20114;&#30340;&#26041;&#24335;&#12290;&#28982;&#32780;&#65292;&#24403;&#38656;&#35201;&#22312;&#34920;&#20013;&#26356;&#25913;&#21015;&#30340;&#25968;&#25454;&#31867;&#22411;&#26102;&#65292;Laravel&#30340;&#36801;&#31227;&#26426;&#21046;&#21487;&#20197;&#36731;&#26494;&#22788;&#29702;&#36825;&#20123;&#21464;&#26356;&#12290;&#26080;&#35770;&#26159;&#26356;&#26032;&#36951;&#30041;&#31995;&#32479;&#36824;&#26159;&#24212;&#23545;&#19981;&#26029;&#21464;&#21270;&#30340;&#25968;&#25454;&#38656;&#27714;&#65292;&#36801;&#31227;&#37117;&#26159;&#20445;&#25345;&#34920;&#32467;&#26500;&#28789;&#27963;&#30340;&#20851;&#38190;&#37096;&#20998;&#12290;&#22312;&#36825;&#31687;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23558;&#25506;&#35752;&#22914;&#20309;&#20351;&#29992;Laravel&#30340;&#36801;&#31227;&#26469;&#26356;&#25913;&#34920;&#20013;&#30340;&#21015;&#25968;&#25454;&#31867;&#22411;&#65292;&#20197;&#21450;&#30456;&#20851;&#30340;&#32771;&#34385;&#22240;&#32032;&#21644;&#25216;&#24039;&#12290;<\/p><p>&#21069;&#32622;&#26465;&#20214;<\/p><p>&#29702;&#35299;&#25968;&#25454;&#24211;&#27169;&#24335;&#21644;&#25968;&#25454;&#31867;&#22411;<\/p><p>&#22522;&#26412;&#30340;Laravel Eloquent&#21644;&#36801;&#31227;&#30693;&#35782;&#12290;<\/p><p>&#19968;&#20010;&#24037;&#20316;&#20013;&#30340;Laravel&#29615;&#22659;<\/p><h2>&#21019;&#24314;&#36801;&#31227;<\/h2><p>&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#36801;&#31227;&#26469;&#20462;&#25913;&#29616;&#26377;&#30340;&#34920;&#12290;&#20351;&#29992;&#20197;&#19979;&#21629;&#20196;&#65306;<code>make:migration<\/code>artisan&#21629;&#20196;&#65306;<\/p><pre><code>php artisan make:migration change_column_type_to_users_table --table=users<\/code><\/pre><p>&#35813;&#21629;&#20196;&#23558;&#22312;&#36801;&#31227;&#25991;&#20214;&#22841;&#20013;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#36801;&#31227;&#25991;&#20214;&#12290;<code>database\/migrations<\/code>&#30446;&#24405;&#12290;&#19968;&#26086;&#21019;&#24314;&#20102;&#23427;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;&#22312;&#20854;&#20013;&#23450;&#20041;&#26469;&#26356;&#25913;&#20320;&#30340;&#35774;&#32622;&#12290;<code>up<\/code>and &#26159;&ldquo;&#21644;&rdquo;&#30340;&#24847;&#24605;&#12290;<code>down<\/code>&#31227;&#27665;&#26041;&#27861;&#12290;<\/p><h2>&#26356;&#25913;&#21015;&#31867;&#22411;<\/h2><p>&#35201;&#26356;&#25913;&#21015;&#30340;&#31867;&#22411;&#65292;&#20320;&#38656;&#35201;&#25805;&#20316;&#30340;&#26159;&#21015;&#30340;&#31867;&#22411;&#12290;<code>change()<\/code>&#26041;&#27861;&#20174;&#36825;&#37324;&#26469;&#12290;<code>Blueprint<\/code>&#23545;&#19981;&#36215;&#65292;&#25105;&#19981;&#22826;&#26126;&#30333;&#24744;&#30340;&#24847;&#24605;&#65292;&#35831;&#24744;&#37325;&#26032;&#25551;&#36848;&#19968;&#19979;&#24744;&#30340;&#38382;&#39064;&#12290;<\/p><pre><code>use IlluminateSupportFacadesSchema;\nuse IlluminateDatabaseSchemaBlueprint;\nuse IlluminateDatabaseMigrationsMigration;\n\nclass ChangeColumnTypeToUsersTable extends Migration\n{\n    public function up()\n    {\n        Schema::table('users', function (Blueprint $table) {\n            $table-&gt;string('age', 50)-&gt;change();\n        });\n    }\n\n    public function down()\n    {\n        Schema::table('users', function (Blueprint $table) {\n            $table-&gt;integer('age')-&gt;change();\n        });\n    }\n}\n<\/code><\/pre><p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#23558;&#21015;&ldquo;age&rdquo;&#20174;&#25972;&#25968;&#26356;&#25913;&#20026;&#23383;&#31526;&#20018;&#12290;&#35831;&#27880;&#24847;&#65292;&#36825;&#20351;&#24471;&#20540;&#22312;&#25490;&#24207;&#26102;&#26174;&#31034;&#20026;&#25991;&#26412;&#32780;&#19981;&#26159;&#25968;&#23383;&#12290;<code>down<\/code>&#26041;&#27861;&#20250;&#36870;&#36716;&#36801;&#31227;&#26356;&#25913;&#12290;<\/p><h2>&#22788;&#29702;&#25968;&#25454;&#36716;&#25442;<\/h2><p>&#22312;&#26356;&#25913;&#21015;&#31867;&#22411;&#26102;&#65292;&#24517;&#39035;&#32771;&#34385;&#25968;&#25454;&#24211;&#20013;&#24050;&#32463;&#23384;&#22312;&#30340;&#25968;&#25454;&#12290;<\/p><p>&#20320;&#38656;&#35201;&#22312;&#36801;&#31227;&#20013;&#28155;&#21152;&#39069;&#22806;&#30340;&#20195;&#30721;&#26469;&#22949;&#21892;&#31649;&#29702;&#36825;&#20123;&#25968;&#25454;&#12290;&#20363;&#22914;&#65292;&#22914;&#26524;&#37325;&#26032;&#32771;&#34385;&ldquo;&#24180;&#40836;&rdquo;&#21015;&#65292;&#20320;&#21487;&#20197;&#23558;&#24180;&#40836;&#25968;&#23383;&#36716;&#25442;&#20026;&#23383;&#31526;&#20018;&#25110;&#20174;&#25972;&#25968;&#35745;&#31639;&#20540;&#65292;&#20363;&#22914;&#26085;&#26399;&#65306;<\/p><pre><code>\/\/ Inside your Migration's up() method\nDB::statement('UPDATE users SET age = CAST(age AS CHAR(255))');<\/code><\/pre><p>&#21153;&#24517;&#24443;&#24213;&#27979;&#35797;&#36801;&#31227;&#24182;&#22791;&#20221;&#25968;&#25454;&#65292;&#28982;&#21518;&#22312;&#24212;&#29992;&#36825;&#20123;&#26356;&#25913;&#20043;&#21069;&#36827;&#34892;&#25805;&#20316;&#12290;<\/p><h2>&#39640;&#32423;&#21015;&#21464;&#26356;&#25805;&#20316;<\/h2><p>&#22312;&#26356;&#22797;&#26434;&#30340;&#22330;&#26223;&#19979;&#65292;&#21487;&#33021;&#38656;&#35201;&#25191;&#34892;&#19968;&#31995;&#21015;&#25805;&#20316;&#20197;&#30830;&#20445;&#25968;&#25454;&#30340;&#36716;&#25442;&#23433;&#20840;&#12290;<\/p><p>&#20363;&#22914;&#65292;&#22914;&#26524;&#20320;&#38656;&#35201;&#25286;&#20998;&#19968;&#20010;&#20840;&#21517;&#20026;&#22995;&#21644;&#21517;&#65306;<\/p><pre><code>use IlluminateSupportFacadesDB;\n\n\/\/ Inside your Migration's up() method\nDB::transaction(function () {\n    DB::statement('ALTER TABLE users ADD COLUMN first_name VARCHAR(255)');\n    DB::statement('ALTER TABLE users ADD COLUMN last_name VARCHAR(255)');\n\n    DB::statement('UPDATE users SET first_name = SUBSTRING_INDEX(name, ' ', 1)');\n    DB::statement('UPDATE users SET last_name = SUBSTRING(name FROM POSITION(' ' IN name) + 1)');\n\n    DB::statement('ALTER TABLE users DROP COLUMN name');\n});<\/code><\/pre><p>&#36825;&#19968;&#31995;&#21015;&#25805;&#20316;&#33021;&#22815;&#24179;&#31283;&#36807;&#28193;&#65292;&#30830;&#20445;&#20219;&#20309;&#19968;&#39033;&#25805;&#20316;&#22833;&#36133;&#26102;&#65292;&#37117;&#33021;&#22238;&#28378;&#65292;&#20197;&#32500;&#25252;&#25968;&#25454;&#24211;&#30340;&#23436;&#25972;&#24615;&#12290;<\/p><h2>&#20351;&#29992;DBAL&#36827;&#34892;&#22797;&#26434;&#26356;&#25913;<\/h2><p>&#23545;&#20110;&#26576;&#20123;&#31867;&#22411;&#30340;&#26356;&#25913;&#65292;Laravel&#30340;&#36801;&#31227;&#27169;&#24335;&#26500;&#24314;&#22120;&#21487;&#33021;&#19981;&#36275;&#20197;&#28385;&#36275;&#38656;&#27714;&#12290;Doctrine DBAL&#65288;&#25968;&#25454;&#24211;&#25277;&#35937;&#23618;&#65289;&#21487;&#20197;&#25104;&#20026;&#24378;&#22823;&#30340;&#30431;&#21451;&#12290;<\/p><p>&#39318;&#20808;&#65292;&#20351;&#29992;Composer&#28155;&#21152;DBAL&#21040;&#20320;&#30340;&#39033;&#30446;&#65306;<\/p><pre><code>composer require doctrine\/dbal<\/code><\/pre><p>&#28982;&#21518;&#65292;&#20320;&#21487;&#20197;&#21033;&#29992;DBAL&#22312;&#36801;&#31227;&#33050;&#26412;&#20013;&#36827;&#34892;&#19968;&#20999;&#25805;&#20316;&#65292;&#21253;&#25324;&#37325;&#21629;&#21517;&#21015;&#21644;&#25913;&#21464;&#25968;&#25454;&#31867;&#22411;&#31561;&#26356;&#32454;&#31890;&#24230;&#30340;&#20462;&#25913;&#12290;<\/p><pre><code>\/\/ Inside your Migration's up() method\nuse IlluminateSupportFacadesSchema;\nuse IlluminateDatabaseSchemaBlueprint;\n\nSchema::table('users', function (Blueprint $table) {\n    $table-&gt;renameColumn('old_name', 'new_name');\n});<\/code><\/pre><h2>&#22788;&#29702;&#21487;&#33021;&#30772;&#22351;&#24615;&#30340;&#25805;&#20316;<\/h2><p>&#38656;&#35201;&#27880;&#24847;&#30340;&#26159;&#65292;&#24182;&#38750;&#25152;&#26377;&#20462;&#25913;&#37117;&#26159;&#21487;&#36870;&#30340;&#65292;&#26576;&#20123;&#21487;&#33021;&#36896;&#25104;&#25968;&#25454;&#20002;&#22833;&#12290;Laravel&#30340;&#36801;&#31227;&#21253;&#21547;&#20102;&#19968;&#20123;&#23433;&#20840;&#25514;&#26045;&#65292;&#22312;&#29983;&#20135;&#29615;&#22659;&#20013;&#38500;&#38750;&#20351;&#29992;&#8211;force&#36873;&#39033;&#65292;&#21542;&#21017;&#19981;&#20250;&#36827;&#34892;&#20219;&#20309;&#19981;&#21487;&#36870;&#30340;&#20462;&#25913;&#12290;<code>--force<\/code>&#22269;&#23478;&#65306;&#20013;&#22269;<\/p><pre><code>php artisan migrate --force<\/code><\/pre><p>&#35831;&#35880;&#24910;&#20351;&#29992;&#27492;&#26631;&#24535;&#65292;&#24182;&#30830;&#20445;&#24744;&#26377;&#22791;&#20221;&#21644;&#22238;&#28378;&#35745;&#21010;&#65292;&#20197;&#38450;&#19975;&#19968;&#12290;<\/p><h2>&#27491;&#22312;&#27979;&#35797;&#36801;&#31227;&#12290;<\/h2><p>&#22987;&#32456;&#22312;&#24320;&#21457;&#29615;&#22659;&#20013;&#27979;&#35797;&#24744;&#30340;&#36801;&#31227;&#12290;&#32534;&#20889;&#27979;&#35797;&#20197;&#30830;&#20445;&#23427;&#20204;&#25353;&#39044;&#26399;&#24037;&#20316;&#65292;&#24182;&#19988;&#35201;&#27979;&#35797;&#20004;&#31181;&#24773;&#20917;&#65306;&#27491;&#24120;&#21644;&#24322;&#24120;&#12290;<code>up()<\/code>and &#26159;&#20013;&#25991;&#20013;&#30340;&#35821;&#27668;&#35789;&#65292;&#29992;&#20110;&#34920;&#31034;&#21516;&#24847;&#12289;&#30830;&#35748;&#25110;&#24378;&#35843;&#31561;&#20316;&#29992;&#12290;<code>down()<\/code>&#26041;&#27861;&#12290;Laravel &#25552;&#20379;&#20102;&#22522;&#20110;&#25968;&#25454;&#24211;&#20107;&#21153;&#30340;&#27979;&#35797;&#65292;&#21487;&#20197;&#24110;&#21161;&#35299;&#20915;&#36825;&#20010;&#38382;&#39064;&#65306;<\/p><pre><code>use TestsTestCase;\nuse IlluminateFoundationTestingDatabaseTransactions;\n\nclass DatabaseMigrationsTest extends TestCase\n{\n    use DatabaseTransactions;\n\n    \/\/ write tests here\n}<\/code><\/pre><p>&#23545;&#19981;&#36215;&#65292;&#25105;&#19981;&#26126;&#30333;&#24744;&#30340;&#24847;&#24605;&#65292;&#35831;&#24744;&#37325;&#26032;&#25551;&#36848;&#19968;&#19979;&#12290;<code>DatabaseTransactions<\/code>&#27979;&#35797;&#25968;&#25454;&#24211;&#22312;&#27599;&#27425;&#27979;&#35797;&#21518;&#37117;&#20250;&#22238;&#28378;&#21040;&#20043;&#21069;&#30340;&#29366;&#24577;&#65292;&#36825;&#38750;&#24120;&#36866;&#21512;&#36801;&#31227;&#27979;&#35797;&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>&#36801;&#31227;&#21644;&#26356;&#25913;Eloquent&#20013;&#30340;&#21015;&#31867;&#22411;&#26159;&#19968;&#39033;&#24120;&#35265;&#30340;&#20219;&#21153;&#65292;&#20045;&#30475;&#20284;&#20046;&#24456;&#20196;&#20154;&#22836;&#30140;&#65292;&#20294;&#19968;&#26086;&#36981;&#24490;&#24815;&#20363;&#24182;&#30830;&#20445;&#25968;&#25454;&#30340;&#23433;&#20840;&#24615;&#65292;&#23427;&#23601;&#21464;&#24471;&#38750;&#24120;&#31616;&#21333;&#12290;&#26080;&#35770;&#26159;&#31616;&#21333;&#30340;&#31867;&#22411;&#21464;&#26356;&#36824;&#26159;&#22797;&#26434;&#30340;&#25968;&#25454;&#36716;&#25442;&#65292;&#36801;&#31227;&#37117;&#25552;&#20379;&#20102;&#24378;&#22823;&#30340;&#24037;&#20855;&#26469;&#21319;&#32423;&#20320;&#30340;&#24212;&#29992;&#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>Eloquent ORM &#26159; Laravel &#30340;&#23448;&#26041;ORM&#24211;&#65292;&#29992;&#20110;&#19982;&#25968;&#25454;&#24211;&#36827;&#34892;&#20132;&#20114;&#12290;&#36890;&#36807; Eloquent&#65292;&#25105;&#20204;&#21487;&#20197;&#21019;&#24314;&#21644;&#31649;&#29702;&#27169;&#22411;&#65288;Model&#65289;&#31867;&#65292;&#36825;&#20123;&#27169;&#22411;&#31867;&#20195;&#34920;&#25105;&#20204;&#30340;&#23454;&#20307;&#23545;&#35937;&#12290;<\/p>\n<p>&#35201;&#22312; Laravel &#20013;&#20462;&#25913;&#34920;&#20013;&#30340;&#21015;&#31867;&#22411;&#65292;&#20320;&#21487;&#20197;&#25353;&#29031;&#20197;&#19979;&#27493;&#39588;&#25805;&#20316;&#65306;<\/p>\n<h3>1. &#30830;&#23450;&#38656;&#35201;&#25913;&#21464;&#30340;&#23383;&#27573;<\/h3>\n<p>&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#26126;&#30830;&#20320;&#35201;&#25913;&#21464;&#21738;&#20010;&#23383;&#27573;&#30340;&#31867;&#22411;&#12290;&#36825;&#36890;&#24120;&#21487;&#20197;&#36890;&#36807;&#26597;&#30475;&#25968;&#25454;&#24211;&#27169;&#24335;&#25991;&#20214;&#65288;&#22914; <code>database\/schema.sql<\/code>&#65289;&#26469;&#30830;&#23450;&#12290;&#22914;&#26524;&#20320;&#27809;&#26377;&#25214;&#21040;&#20855;&#20307;&#30340;&#23383;&#27573;&#23450;&#20041;&#65292;&#21487;&#20197;&#23581;&#35797;&#26597;&#25214;&#23383;&#27573;&#21517;&#31216;&#65292;&#25110;&#32773;&#36890;&#36807;&#26597;&#35810;&#25968;&#25454;&#24211;&#32467;&#26500;&#33719;&#21462;&#30456;&#20851;&#20449;&#24687;&#12290;<\/p>\n<h3>2. &#21019;&#24314;&#26032;&#30340;&#34920;&#32467;&#26500;<\/h3>\n<p>&#20551;&#35774;&#20320;&#24819;&#23558; <code>orders<\/code> &#34920;&#20013;&#30340; <code>status<\/code> &#23383;&#27573;&#20174;&#23383;&#31526;&#20018;&#26356;&#25913;&#20026;&#25972;&#25968;&#31867;&#22411;&#65292;&#20320;&#21487;&#20197;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#34920;&#32467;&#26500;&#25991;&#20214;&#24182;&#28155;&#21152;&#30456;&#24212;&#30340;&#23383;&#27573;&#23450;&#20041;&#12290;&#20363;&#22914;&#65306;<\/p>\n<pre><code class=\"language-sql\">CREATE TABLE orders (\n    id INT AUTO_INCREMENT PRIMARY KEY,\n    status INT NOT NULL,\n    \/\/ &#26356;&#22810;&#23383;&#27573;&#23450;&#20041;...\n);<\/code><\/pre>\n<h3>3. &#20351;&#29992; Eloquent &#26356;&#26032;&#34920;&#32467;&#26500;<\/h3>\n<p>&#19968;&#26086;&#20320;&#26377;&#26032;&#30340;&#34920;&#32467;&#26500;&#23450;&#20041;&#65292;&#23601;&#21487;&#20197;&#20351;&#29992; Eloquent ORM &#26469;&#26356;&#26032;&#25968;&#25454;&#24211;&#12290;&#19979;&#38754;&#26159;&#22914;&#20309;&#26356;&#26032; <code>orders<\/code> &#34920;&#20013; <code>status<\/code> &#23383;&#27573;&#31867;&#22411;&#30340;&#31034;&#20363;&#65306;<\/p>\n<h4>&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#21517;&#20026; <code>Orders<\/code> &#30340;&#27169;&#22411;&#31867;&#65306;<\/h4>\n<pre><code class=\"language-php\">use IlluminateDatabaseMigrationsMigration;\nuse IlluminateDatabaseSchemaBlueprint;\nuse IlluminateSupportFacadesSchema;\n\nclass ChangeStatusColumnType extends Migration\n{\n    public function up()\n    {\n        Schema::table('orders', function (Blueprint $table) {\n            $table-&gt;integer('status')-&gt;change();\n        });\n    }\n\n    public function down()\n    {\n        Schema::table('orders', function (Blueprint $table) {\n            $table-&gt;string('status');\n        });\n    }\n}<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#22312; <code>up()<\/code> &#26041;&#27861;&#20013;&#20462;&#25913;&#20102; <code>orders<\/code> &#34920;&#20013;&#30340; <code>status<\/code> &#23383;&#27573;&#31867;&#22411;&#20026;&#25972;&#22411;&#12290;&#28982;&#21518;&#22312; <code>down()<\/code> &#26041;&#27861;&#20013;&#24674;&#22797;&#20102;&#21407;&#22987;&#31867;&#22411;&#65292;&#21363;&#23383;&#31526;&#20018;&#31867;&#22411;&#12290;<\/p>\n<p>&#27880;&#24847;&#65306;&#22312;&#25191;&#34892;&#20219;&#20309;&#36801;&#31227;&#20043;&#21069;&#65292;&#35831;&#30830;&#20445;&#20320;&#24050;&#32463;&#27491;&#30830;&#22320;&#22791;&#20221;&#20102;&#25968;&#25454;&#24211;&#12290;&#22312;&#29983;&#20135;&#29615;&#22659;&#20013;&#65292;&#36991;&#20813;&#30452;&#25509;&#20462;&#25913;&#25968;&#25454;&#24211;&#32467;&#26500;&#65292;&#20197;&#20813;&#23548;&#33268;&#25968;&#25454;&#20002;&#22833;&#12290;<\/p>\n<p>&#20197;&#19978;&#23601;&#26159;&#22312; Laravel &#20013;&#20351;&#29992; Eloquent ORM &#20462;&#25913;&#34920;&#20013;&#21015;&#31867;&#22411;&#30340;&#22522;&#26412;&#27493;&#39588;&#12290;&#26681;&#25454;&#23454;&#38469;&#24773;&#20917;&#36873;&#25321;&#21512;&#36866;&#30340;&#24037;&#20855;&#21644;&#26041;&#27861;&#65292;&#30830;&#20445;&#25968;&#25454;&#24211;&#23433;&#20840;&#24615;&#65292;&#24182;&#23450;&#26399;&#23545;&#36801;&#31227;&#36827;&#34892;&#26816;&#26597;&#20197;&#38450;&#27490;&#38169;&#35823;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; Laravel &#26159;&#19968;&#20010;&#38750;&#24120;&#27969;&#34892;&#30340; PHP &#26694;&#26550;&#65292;&#29992;&#20110;&#26500;&#038;#24314..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-1015","my1js","type-my1js","status-publish","hentry","my1js2nav-laravel"],"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\/1015","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=1015"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=1015"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=1015"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=1015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}