{"id":908,"date":"2025-06-12T02:30:39","date_gmt":"2025-06-11T18:30:39","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/908.html"},"modified":"2025-06-12T02:30:39","modified_gmt":"2025-06-11T18:30:39","slug":"laravel-eloquent%ef%bc%9a%e4%bb%8ecsv%e6%96%87%e4%bb%b6%e5%af%bc%e5%85%a5mysql%e6%95%b0%e6%8d%ae%e5%ba%93","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/908.html","title":{"rendered":"Laravel &amp; Eloquent\uff1a\u4eceCSV\u6587\u4ef6\u5bfc\u5165MySQL\u6570\u636e\u5e93"},"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>&#26631;&#39064;&#65306;&#20351;&#29992;Laravel&#21644;Eloquent&#23558;CSV&#25991;&#20214;&#23548;&#20837;MySQL&#25968;&#25454;&#24211;<\/p>\n<p>&#27491;&#25991;&#65306;\n&#22312;&#29616;&#20195;&#24320;&#21457;&#20013;&#65292;&#25968;&#25454;&#30340;&#23548;&#20837;&#21644;&#23548;&#20986;&#26159;&#24120;&#35265;&#30340;&#38656;&#27714;&#12290;&#23545;&#20110;&#38656;&#35201;&#25209;&#37327;&#23548;&#20837;&#22823;&#37327;&#25968;&#25454;&#30340;&#24212;&#29992;&#31243;&#24207;&#26469;&#35828;&#65292;&#25163;&#21160;&#25805;&#20316;&#21487;&#33021;&#38750;&#24120;&#32791;&#26102;&#19988;&#19981;&#28789;&#27963;&#12290;Laravel&#21644;Eloquent&#25552;&#20379;&#20102;&#19968;&#31181;&#31616;&#21333;&#32780;&#39640;&#25928;&#30340;&#26041;&#27861;&#26469;&#23454;&#29616;&#36825;&#19968;&#30446;&#26631;&#12290;<\/p>\n<p>&#39318;&#20808;&#65292;&#30830;&#20445;&#20320;&#24050;&#32463;&#23433;&#35013;&#20102;Laravel&#21644;Eloquent&#12290;&#22914;&#26524;&#27809;&#26377;&#23433;&#35013;&#65292;&#21487;&#20197;&#36890;&#36807;Composer&#36827;&#34892;&#23433;&#35013;&#65306;<\/p>\n<pre><code class=\"language-bash\">composer create-project --prefer-dist laravel\/laravel my-import-app\ncd my-import-app<\/code><\/pre>\n<p>&#25509;&#19979;&#26469;&#65292;&#21019;&#24314;&#19968;&#20010;&#36801;&#31227;&#25991;&#20214;&#26469;&#23450;&#20041;&#20320;&#30340;&#34920;&#32467;&#26500;&#65306;<\/p>\n<pre><code class=\"language-php\">\/\/ app\/database\/migrations\/2021_01_01_000000_create_users_table.php\n\nuse IlluminateDatabaseMigrationsMigration;\nuse IlluminateDatabaseSchemaBlueprint;\n\nclass CreateUsersTable extends Migration\n{\n    public function up()\n    {\n        Schema::create('users', function (Blueprint $table) {\n            $table-&gt;id();\n            $table-&gt;string('name');\n            $table-&gt;email()-&gt;unique();\n            $table-&gt;timestamps();\n        });\n    }\n\n    public function down()\n    {\n        Schema::dropIfExists('users');\n    }\n}<\/code><\/pre>\n<p>&#28982;&#21518;&#36816;&#34892;&#36801;&#31227;&#26469;&#21019;&#24314;&#34920;&#65306;<\/p>\n<pre><code class=\"language-bash\">php artisan migrate<\/code><\/pre>\n<p>&#25509;&#19979;&#26469;&#65292;&#21019;&#24314;&#19968;&#20010;&#25511;&#21046;&#22120;&#26469;&#22788;&#29702;CSV&#25991;&#20214;&#30340;&#23548;&#20837;&#65306;<\/p>\n<pre><code class=\"language-php\">\/\/ app\/Http\/Controllers\/UserController.php\n\nnamespace AppHttpControllers;\n\nuse IlluminateHttpRequest;\nuse AppModelsUser;\nuse IlluminateSupportFacadesStorage;\n\nclass UserController extends Controller\n{\n    public function import(Request $request)\n    {\n        \/\/ &#26816;&#26597;&#25991;&#20214;&#26159;&#21542;&#23384;&#22312;&#24182;&#19988;&#26159;CSV&#26684;&#24335;\n        if ($request-&gt;hasFile('file') &amp;&amp; $request-&gt;file('file')-&gt;extension() === 'csv') {\n            $file = $request-&gt;file('file');\n\n            \/\/ &#35835;&#21462;CSV&#25991;&#20214;&#24182;&#25554;&#20837;&#21040;&#25968;&#25454;&#24211;\n            $data = file($file-&gt;path(), true);\n            foreach ($data as $row) {\n                User::create([\n                    'name' =&gt; $row[0],\n                    'email' =&gt; $row[1]\n                ]);\n            }\n\n            return response()-&gt;json(['message' =&gt; '&#25968;&#25454;&#24050;&#25104;&#21151;&#23548;&#20837;']);\n        } else {\n            return response()-&gt;json(['error' =&gt; '&#26080;&#25928;&#30340;&#25991;&#20214;&#31867;&#22411;'], 400);\n        }\n    }\n}<\/code><\/pre>\n<p>&#26368;&#21518;&#65292;&#21019;&#24314;&#19968;&#20010;&#36335;&#30001;&#26469;&#22788;&#29702;&#25991;&#20214;&#19978;&#20256;&#35831;&#27714;&#65306;<\/p>\n<pre><code class=\"language-php\">\/\/ routes\/web.php\n\nuse AppHttpControllersUserController;\n\nRoute::post('\/import', [UserController::class, 'import']);<\/code><\/pre>\n<p>&#29616;&#22312;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;POST&#35831;&#27714;&#19978;&#20256;CSV&#25991;&#20214;&#21040;<code>\/import<\/code>&#31471;&#28857;&#12290;&#20363;&#22914;&#65292;&#20351;&#29992;Postman&#25110;&#20854;&#20182;&#24037;&#20855;&#19978;&#20256;&#19968;&#20010;&#21517;&#20026;<code>users.csv<\/code>&#30340;&#25991;&#20214;&#65292;&#20854;&#20013;&#21253;&#21547;&#20197;&#19979;&#20869;&#23481;&#65306;<\/p>\n<pre><code>Name,Email\nJohn Doe,john.doe@example.com\nJane Smith,jane.smith@example.com<\/code><\/pre>\n<p>&#25552;&#20132;&#35831;&#27714;&#21518;&#65292;&#20320;&#20250;&#30475;&#21040;&#19968;&#26465;&#28040;&#24687;&#34920;&#26126;&#25968;&#25454;&#24050;&#25104;&#21151;&#23548;&#20837;&#12290;<\/p>\n<p>&#24635;&#32467;&#65306;\n&#36890;&#36807;&#20197;&#19978;&#27493;&#39588;&#65292;&#20320;&#21487;&#20197;&#22312;Laravel&#21644;Eloquent&#30340;&#24110;&#21161;&#19979;&#36731;&#26494;&#22320;&#23558;CSV&#25991;&#20214;&#23548;&#20837;MySQL&#25968;&#25454;&#24211;&#12290;&#36825;&#31181;&#26041;&#27861;&#19981;&#20165;&#25552;&#39640;&#20102;&#25928;&#29575;&#65292;&#36824;&#25552;&#20379;&#20102;&#26356;&#22909;&#30340;&#28789;&#27963;&#24615;&#21644;&#25511;&#21046;&#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>&#22312;&#36825;&#20010;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23558;&#25506;&#35752;&#22914;&#20309;&#20351;&#29992;Laravel&#65288;&#19968;&#20010;&#27969;&#34892;&#19988;&#20197;&#20854;&#20248;&#38597;&#35821;&#27861;&#21644;&#24378;&#22823;&#21151;&#33021;&#32780;&#38395;&#21517;&#30340;PHP&#26694;&#26550;&#65289;&#23558;CSV&#25991;&#20214;&#23548;&#20837;&#21040;MySQL&#25968;&#25454;&#24211;&#20013;&#12290;Laravel&#30340;Eloquent ORM&#20351;&#19982;&#25968;&#25454;&#24211;&#20132;&#20114;&#21464;&#24471;&#26497;&#20854;&#30452;&#35266;&#12290;&#36890;&#36807;&#26412;&#25351;&#21335;&#30340;&#23398;&#20064;&#65292;&#24744;&#23558;&#25484;&#25569;&#22914;&#20309;&#39640;&#25928;&#22320;&#20351;&#29992;Laravel&#30340;&#31181;&#23376;&#22120;&#20174;CSV&#25991;&#20214;&#23548;&#20837;&#21040;&#24744;&#30340;MySQL&#25968;&#25454;&#24211;&#20013;&#12290;<\/p><p>&#20808;&#20915;&#26465;&#20214;<\/p><p>&#24744;&#24819;&#23548;&#20837;&#30340;CSV&#25991;&#20214;&#12290;<\/p><p>&#19968;&#20010;MySQL&#25968;&#25454;&#24211;&#12290;<\/p><p>&#22312;&#24744;&#30340;&#31995;&#32479;&#19978;&#23433;&#35013;Laravel&#12290;<\/p><p>&#22522;&#26412;&#30340;PHP&#21644;Laravel&#29702;&#35299;&#12290;<\/p><h2>&#27493;&#39588;&#24335;&#25351;&#23548;<\/h2><h3>&#27493;&#39588;1&#65306;&#35774;&#32622;&#29615;&#22659;<\/h3><p>&#30830;&#20445;&#22312;&#24744;&#30340;&#26426;&#22120;&#19978;&#23433;&#35013;&#24182;&#37197;&#32622;&#22909;Laravel&#12290;&#24744;&#36824;&#38656;&#35201;&#26377;&#19968;&#20010;MySQL&#25968;&#25454;&#24211;&#20934;&#22791;&#23601;&#32490;&#12290;&#22914;&#26524;&#38656;&#35201;&#30340;&#35805;&#65292;&#21487;&#20197;&#20351;&#29992;phpMyAdmin&#25110;MySQL&#21629;&#20196;&#34892;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#25968;&#25454;&#24211;&#12290;<\/p><pre><code>CREATE DATABASE your_database_name;<\/code><\/pre><h3>&#27493;&#39588; 2&#65306;&#21019;&#24314;&#27169;&#22411;&#21644;&#36801;&#31227;<\/h3><p>&#39318;&#20808;&#65292;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#27169;&#22411;&#21644;&#36801;&#31227;&#25991;&#20214;&#65292;&#20197;&#20415;&#23558;CSV&#25968;&#25454;&#23548;&#20837;&#21040;&#25351;&#23450;&#30340;&#34920;&#26684;&#20013;&#12290;&#20320;&#21487;&#20197;&#36890;&#36807;Artisan&#21629;&#20196;&#36731;&#26494;&#23436;&#25104;&#36825;&#20010;&#25805;&#20316;&#65306;<\/p><pre><code>php artisan make:model MyModel -m<\/code><\/pre><p>&#22312;&#29983;&#25104;&#30340;&#36801;&#31227;&#25991;&#20214;&#20301;&#20110;&#65306;<code>database\/migrations<\/code>&#35831;&#28155;&#21152;&#19982;CSV&#25991;&#20214;&#32467;&#26500;&#23545;&#24212;&#30340;&#21015;&#12290;&#20363;&#22914;&#65306;<\/p><pre><code>public function up()\n{\n    Schema::create('my_models', function (Blueprint $table) {\n        $table-&gt;id();\n        $table-&gt;string('column1');\n        $table-&gt;string('column2');\n       \/\/ Add more columns as needed\n    });\n}<\/code><\/pre><p>&#36801;&#31227;&#20197;&#22312;&#24744;&#30340;&#25968;&#25454;&#24211;&#20013;&#21019;&#24314;&#34920;&#65306;<\/p><pre><code>php artisan migrate<\/code><\/pre><h3>&#27493;&#39588;3&#65306;&#20934;&#22791;CSV&#25991;&#20214;&#36827;&#34892;&#23548;&#20837;<\/h3><p>&#22312;&#23548;&#20837;&#20043;&#21069;&#65292;&#35831;&#30830;&#20445;&#24744;&#30340;CSV&#25991;&#20214;&#26684;&#24335;&#27491;&#30830;&#12290;&#23427;&#24212;&#35813;&#19982;&#25968;&#25454;&#24211;&#34920;&#30340;&#32467;&#26500;&#21305;&#37197;&#12290;&#27492;&#22806;&#65292;&#23558;CSV&#25991;&#20214;&#25918;&#32622;&#22312;Laravel&#39033;&#30446;&#20013;&#65292;&#20363;&#22914;&#65292;&#22312;&#39033;&#30446;&#30340;&#26681;&#30446;&#24405;&#19979;&#12290;<code>database\/csv<\/code>&#30446;&#24405;&#12290;<\/p><p>&#22909;&#30340;&#65292;&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<\/p><pre><code>column1,column2,column3\r\ndata1-1,data1-2,data1-3\r\ndata2-1,data2-2,data2-3\r\ndata3-1,data3-2,data3-3\r\ndata4-1,data4-2,data4-3\r\ndata5-1,data5-2,data5-3\r<\/code><\/pre><h3>&#31532;4&#27493;&#65306;&#21019;&#24314; Seeder &#26469;&#23548;&#20837; CSV &#25968;&#25454;<\/h3><p>Laravel &#20351;&#29992;&#25773;&#31181;&#22120;&#26469;&#22635;&#20805;&#25968;&#25454;&#24211;&#34920;&#20013;&#30340;&#25968;&#25454;&#12290;&#20320;&#21487;&#20197;&#20026;&#23548;&#20837;CSV&#25968;&#25454;&#21019;&#24314;&#19987;&#38376;&#30340;&#25773;&#31181;&#22120;&#65306;<\/p><pre><code>php artisan make:seeder CsvImportSeeder<\/code><\/pre><p>&#32534;&#36753;&#21018;&#21018;&#21019;&#24314;&#30340;Seeder&#25991;&#20214;&#12290;<code>database\/seeders<\/code>&#21487;&#20197;&#21033;&#29992;Laravel&#20869;&#32622;&#30340;&#26041;&#27861;&#21644;PHP&#30340;&#21407;&#29983;&#26041;&#27861;&#12290;<code>fgetcsv<\/code>&#35831;&#38405;&#35835;&#24182;&#23548;&#20837;CSV&#25991;&#20214;&#12290;&#31034;&#20363;&#22914;&#19979;&#65306;<\/p><pre><code>namespace DatabaseSeeders;\n\nuse IlluminateDatabaseSeeder;\nuse IlluminateSupportFacadesDB;\nuse LeagueCsvReader;\n\nclass CsvImportSeeder extends Seeder\n{\n    public function run()\n    {\n        $csv = Reader::createFromPath(database_path() . '\/csv\/yourfile.csv', 'r');\n        $csv-&gt;setHeaderOffset(0); \/\/set the CSV header offset\n\n        foreach ($csv as $record) {\n            DB::table('my_models')-&gt;insert([\n                'column1' =&gt; $record['column1'],\n                'column2' =&gt; $record['column2'],\n                \/\/ Map other columns accordingly\n            ]);\n        }\n    }\n}<\/code><\/pre><p>&#22909;&#30340;&#65292;&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<code>league\/csv<\/code>&#22788;&#29702;CSV&#25991;&#20214;&#30340;&#21253;&#65292;&#28436;&#31034;&#20102;&#19968;&#20010;&#26356;&#39640;&#32423;&#30340;&#26041;&#27861;&#12290;&#20351;&#29992;<code>league\/csv<\/code>&#35831;&#20351;&#29992;Composer&#36827;&#34892;&#23433;&#35013;&#65306;<\/p><pre><code>composer require league\/csv<\/code><\/pre><h3>&#27493;&#39588;5&#65306;&#36816;&#34892;&#31181;&#23376;&#22120;<\/h3><p>&#26368;&#21518;&#65292;&#20320;&#21487;&#20197;&#36816;&#34892; Seeder &#26469;&#23558;&#25968;&#25454;&#23548;&#20837;&#21040;&#20320;&#30340;&#25968;&#25454;&#24211;&#20013;&#65306;<\/p><pre><code>php artisan db:seed --class=CsvImportSeeder<\/code><\/pre><h2>&#32467;&#35770;&#12290;<\/h2><p>&#25353;&#29031;&#19978;&#36848;&#27493;&#39588;&#65292;&#24744;&#25104;&#21151;&#22320;&#23558;CSV&#25991;&#20214;&#23548;&#20837;&#21040;MySQL&#25968;&#25454;&#24211;&#20013;&#65292;&#20351;&#29992;&#20102;Laravel&#26694;&#26550;&#30340;Migrations&#12289;Models&#21644;Seeders&#12290;&#26412;&#25351;&#21335;&#21521;&#24744;&#20171;&#32461;&#20102;&#22914;&#20309;&#22312;Laravel&#26694;&#26550;&#20013;&#21019;&#24314;&#21644;&#36816;&#34892;&#36825;&#20123;&#25216;&#26415;&#12290;&#26080;&#35770;&#24744;&#26159;&#22312;&#22823;&#22411;&#39033;&#30446;&#36824;&#26159;&#31616;&#21333;&#24212;&#29992;&#20013;&#24037;&#20316;&#65292;&#25484;&#25569;&#36825;&#20123;&#25216;&#24039;&#23545;&#20110;&#39640;&#25928;&#31649;&#29702;&#25968;&#25454;&#24211;&#25805;&#20316;&#33267;&#20851;&#37325;&#35201;&#12290;<\/p><p>&#35831;&#35760;&#20303;&#65292;Laravel&#25552;&#20379;&#20102;&#20016;&#23500;&#30340;&#21151;&#33021;&#21644;&#24037;&#20855;&#65292;&#21487;&#20197;&#31616;&#21270;&#24744;&#30340;&#24320;&#21457;&#27969;&#31243;&#12290;&#28145;&#20837;&#25506;&#32034;Laravel&#30340;&#25991;&#26723;&#65292;&#21487;&#20197;&#36827;&#19968;&#27493;&#25193;&#23637;&#24744;&#30340;&#21487;&#33021;&#24615;&#65292;&#20174;&#32780;&#26356;&#22909;&#22320;&#21019;&#24314;&#24378;&#22823;&#30340;&#12289;&#21487;&#25193;&#23637;&#30340;Web&#24212;&#29992;&#31243;&#24207;&#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; Laravel &#21644; Eloquent &#26694;&#26550;&#20013;&#65292;&#20174; CSV &#25991;&#20214;&#23548;&#20837; MySQL &#25968;&#25454;&#24211;&#26159;&#30456;&#23545;&#31616;&#21333;&#30340;&#12290;&#19979;&#38754;&#25105;&#23558;&#21521;&#24744;&#23637;&#31034;&#22914;&#20309;&#23454;&#29616;&#36825;&#19968;&#21151;&#33021;&#12290;<\/p>\n<p>&#39318;&#20808;&#65292;&#30830;&#20445;&#24744;&#30340;&#39033;&#30446;&#24050;&#23433;&#35013;&#20102; Laravel &#21644; Eloquent&#12290;&#22914;&#26524;&#23578;&#26410;&#23433;&#35013;&#65292;&#35831;&#20351;&#29992;&#20197;&#19979;&#21629;&#20196;&#36827;&#34892;&#23433;&#35013;&#65306;<\/p>\n<pre><code class=\"language-bash\">composer require laravel\/ui<\/code><\/pre>\n<p>&#25509;&#19979;&#26469;&#65292;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#25511;&#21046;&#22120;&#26469;&#22788;&#29702; CSV &#23548;&#20837;&#35831;&#27714;&#65306;<\/p>\n<ol>\n<li>&#22312; <code>app\/Http\/Controllers<\/code> &#30446;&#24405;&#19979;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#25511;&#21046;&#22120;&#65292;&#20363;&#22914; <code>CsvImportController.php<\/code>&#12290;<\/li>\n<li>&#22312;&#35813;&#25511;&#21046;&#22120;&#20013;&#28155;&#21152;&#19968;&#20010;&#26041;&#27861;&#26469;&#22788;&#29702; CSV &#35831;&#27714;&#12290;<\/li>\n<\/ol>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppHttpControllers;\n\nuse IlluminateHttpRequest;\nuse AppModelsEmployee;\n\nclass CsvImportController extends Controller\n{\n    public function import(Request $request)\n    {\n        if ($request-&gt;hasFile('csv')) {\n            $file = $request-&gt;file('csv');\n            $data = [];\n            \/\/ &#38405;&#35835; CSV &#25991;&#20214;&#30340;&#27599;&#19968;&#34892;\n            foreach (str_split($file) as $row) {\n                $parts = explode(',', trim($row));\n                array_push($data, [\n                    'name' =&gt; $parts[0],\n                    'age' =&gt; $parts[1]\n                ]);\n            }\n\n            \/\/ &#21019;&#24314; Employee &#34920;&#20013;&#30340;&#26032;&#35760;&#24405;\n            $employees = collect($data)-&gt;map(function ($item) {\n                return new Employee([\n                    'name' =&gt; $item['name'],\n                    'age' =&gt; $item['age']\n                ]);\n            })-&gt;all();\n\n            \/\/ &#20445;&#23384;&#21592;&#24037;&#25968;&#25454;&#21040;&#25968;&#25454;&#24211;\n            Employee::insert($employees);\n        }\n\n        return redirect()-&gt;back();\n    }\n}<\/code><\/pre>\n<p>&#29616;&#22312;&#65292;&#24403;&#29992;&#25143;&#23581;&#35797;&#36890;&#36807;&#34920;&#21333;&#19978;&#20256; CSV &#25991;&#20214;&#26102;&#65292;&#36825;&#20010;&#25511;&#21046;&#22120;&#23558;&#33258;&#21160;&#25191;&#34892;&#23548;&#20837;&#25805;&#20316;&#12290;&#35831;&#30830;&#20445; CSV &#25991;&#20214;&#26684;&#24335;&#27491;&#30830;&#65292;&#19988;&#21015;&#21517;&#19982;&#27169;&#22411;&#23383;&#27573;&#21517;&#31216;&#21305;&#37197;&#12290;<\/p>\n<h3>&#31034;&#20363;&#20195;&#30721;&#29255;&#27573;<\/h3>\n<p>&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#21517;&#20026; <code>employees.csv<\/code> &#30340;&#25991;&#20214;&#65292;&#20854;&#20869;&#23481;&#22914;&#19979;&#65306;\n&#22995;&#21517;,&#24180;&#40836;\nJohn Doe,35\nJane Smith,28<\/p>\n<p>&#25105;&#20204;&#23558;&#20351;&#29992;&#20197;&#19979; PHP &#33050;&#26412;&#26469;&#35299;&#26512; CSV &#25991;&#20214;&#24182;&#23558;&#20854;&#23548;&#20837;&#25968;&#25454;&#24211;&#65306;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\n$file = fopen(\"employees.csv\", \"r\");\n$employees = [];\n\nwhile (($line = fgetcsv($file)) !== false) {\n    array_push($employees, [\n        'name' =&gt; $line[0],\n        'age' =&gt; $line[1]\n    ]);\n}\n\nforeach ($employees as $employee) {\n    $new_employee = new Employee([\n        'name' =&gt; $employee['name'],\n        'age' =&gt; $employee['age']\n    ]);\n\n    DB::table('employees')-&gt;insert($new_employee-&gt;toArray());\n}\nfclose($file);\n\necho \"Employees imported successfully.\";\n?&gt;<\/code><\/pre>\n<h3>&#27880;&#24847;&#20107;&#39033;<\/h3>\n<ul>\n<li><strong>&#26816;&#26597;&#25991;&#20214;<\/strong>&#65306;&#30830;&#20445; CSV &#25991;&#20214;&#26684;&#24335;&#27491;&#30830;&#65292;&#24182;&#19988;&#21015;&#21517;&#21644;&#27169;&#22411;&#23646;&#24615;&#21517;&#31216;&#19968;&#33268;&#12290;<\/li>\n<li><strong>&#23433;&#20840;&#25514;&#26045;<\/strong>&#65306;&#22312;&#23454;&#38469;&#29983;&#20135;&#29615;&#22659;&#20013;&#65292;&#24212;&#32771;&#34385;&#23545; CSV &#25991;&#20214;&#36827;&#34892;&#26356;&#20005;&#26684;&#30340;&#39564;&#35777;&#21644;&#38169;&#35823;&#22788;&#29702;&#65292;&#20197;&#38450;&#24694;&#24847;&#36755;&#20837;&#12290;<\/li>\n<li><strong>&#24615;&#33021;&#20248;&#21270;<\/strong>&#65306;&#23545;&#20110;&#22823;&#22411; CSV &#25991;&#20214;&#65292;&#21487;&#20197;&#32771;&#34385;&#20998;&#25209;&#23548;&#20837;&#20197;&#36991;&#20813;&#20869;&#23384;&#28322;&#20986;&#38382;&#39064;&#12290;<\/li>\n<\/ul>\n<p>&#24076;&#26395;&#36825;&#26377;&#21161;&#20110;&#24744;&#24320;&#22987;&#20351;&#29992; Laravel &#21644; Eloquent &#36827;&#34892; CSV &#23548;&#20837;&#65281;&#22914;&#26524;&#26377;&#20219;&#20309;&#30097;&#38382;&#65292;&#35831;&#38543;&#26102;&#25552;&#38382;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#26631;&#39064;&#65306;&#20351;&#29992;Laravel&#21644;Eloquent&#23558;CSV&#25991;&#20214;&#23548;&#20837;MySQL&#25968;&#25454;&#038;#242..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-908","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\/908","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=908"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=908"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=908"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=908"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}