{"id":917,"date":"2025-06-12T02:42:18","date_gmt":"2025-06-11T18:42:18","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/917.html"},"modified":"2025-06-12T02:42:18","modified_gmt":"2025-06-11T18:42:18","slug":"%e5%9c%a8laravel%e6%9f%a5%e8%af%a2%e6%9e%84%e9%80%a0%e5%99%a8%e4%b8%ad%e6%87%92%e5%8a%a0%e8%bd%bd%e6%b5%81%e5%bc%8f%e7%bb%93%e6%9e%9c%ef%bc%9a%e6%95%99%e7%a8%8b%e4%b8%8e%e7%a4%ba%e4%be%8b","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/917.html","title":{"rendered":"\u5728Laravel\u67e5\u8be2\u6784\u9020\u5668\u4e2d\u61d2\u52a0\u8f7d\u6d41\u5f0f\u7ed3\u679c\uff1a\u6559\u7a0b\u4e0e\u793a\u4f8b"},"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;&#22312; Laravel &#26597;&#35810;&#26500;&#36896;&#22120;&#20013;&#25042;&#21152;&#36733;&#27969;&#24335;&#32467;&#26524;&#65306;&#25945;&#31243;&#19982;&#31034;&#20363;<\/p>\n<p>&#25042;&#21152;&#36733;&#65288;Lazy Loading&#65289;&#26159;&#19968;&#31181;&#20248;&#21270;&#25216;&#26415;&#65292;&#23427;&#20801;&#35768;&#20320;&#22312;&#38656;&#35201;&#26102;&#25165;&#21152;&#36733;&#25968;&#25454;&#65292;&#32780;&#19981;&#26159;&#19968;&#27425;&#24615;&#21152;&#36733;&#25152;&#26377;&#25968;&#25454;&#12290;&#36825;&#23545;&#20110;&#22823;&#34920;&#25110;&#38656;&#35201;&#22788;&#29702;&#22823;&#37327;&#25968;&#25454;&#30340;&#22330;&#26223;&#38750;&#24120;&#26377;&#29992;&#12290;&#22312; Laravel &#20013;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;&#26597;&#35810;&#26500;&#36896;&#22120;&#30340; <code>with<\/code> &#26041;&#27861;&#26469;&#23454;&#29616;&#36825;&#19968;&#28857;&#12290;<\/p>\n<p>&#20197;&#19979;&#26159;&#19968;&#20010;&#31616;&#21333;&#30340;&#25945;&#31243;&#21644;&#31034;&#20363;&#65292;&#23637;&#31034;&#22914;&#20309;&#22312; Laravel &#20013;&#20351;&#29992;&#26597;&#35810;&#26500;&#36896;&#22120;&#30340; <code>with<\/code> &#26041;&#27861;&#36827;&#34892;&#25042;&#21152;&#36733;&#27969;&#24335;&#32467;&#26524;&#12290;<\/p>\n<h3>1. &#23433;&#35013; Laravel<\/h3>\n<p>&#39318;&#20808;&#65292;&#30830;&#20445;&#20320;&#24050;&#32463;&#23433;&#35013;&#20102; Laravel&#12290;&#22914;&#26524;&#27809;&#26377;&#23433;&#35013;&#65292;&#21487;&#20197;&#20351;&#29992; Composer &#36827;&#34892;&#23433;&#35013;&#65306;<\/p>\n<pre><code class=\"language-bash\">composer create-project --prefer-dist laravel\/laravel my-laravel-app\ncd my-laravel-app<\/code><\/pre>\n<h3>2. &#21019;&#24314;&#27169;&#22411;&#21644;&#36801;&#31227;<\/h3>\n<p>&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#21517;&#20026; <code>User<\/code> &#30340;&#27169;&#22411;&#65292;&#24182;&#19988;&#26377;&#19968;&#20010;&#21517;&#20026; <code>posts<\/code> &#30340;&#20851;&#32852;&#34920;&#12290;&#25105;&#20204;&#38656;&#35201;&#21019;&#24314;&#36825;&#20123;&#27169;&#22411;&#24182;&#36816;&#34892;&#36801;&#31227;&#12290;<\/p>\n<h4>&#21019;&#24314;&#27169;&#22411;<\/h4>\n<p>&#22312; <code>app\/Models<\/code> &#30446;&#24405;&#19979;&#21019;&#24314; <code>User<\/code> &#21644; <code>Post<\/code> &#27169;&#22411;&#25991;&#20214;&#65306;<\/p>\n<pre><code class=\"language-php\">\/\/ app\/Models\/User.php\nnamespace AppModels;\n\nuse IlluminateDatabaseEloquentModel;\n\nclass User extends Model\n{\n    public function posts()\n    {\n        return $this-&gt;hasMany(Post::class);\n    }\n}<\/code><\/pre>\n<h4>&#21019;&#24314;&#36801;&#31227;<\/h4>\n<p>&#22312; <code>database\/migrations<\/code> &#30446;&#24405;&#19979;&#21019;&#24314;&#30456;&#24212;&#30340;&#36801;&#31227;&#25991;&#20214;&#65306;<\/p>\n<pre><code class=\"language-php\">\/\/ database\/migrations\/2023_04_01_000000_create_users_table.php\nuse IlluminateDatabaseMigrationsMigration;\nuse IlluminateDatabaseSchemaBlueprint;\nuse IlluminateSupportFacadesSchema;\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}\n\n\/\/ database\/migrations\/2023_04_01_000001_create_posts_table.php\nuse IlluminateDatabaseMigrationsMigration;\nuse IlluminateDatabaseSchemaBlueprint;\nuse IlluminateSupportFacadesSchema;\n\nclass CreatePostsTable extends Migration\n{\n    public function up()\n    {\n        Schema::create('posts', function (Blueprint $table) {\n            $table-&gt;id();\n            $table-&gt;unsignedBigInteger('user_id');\n            $table-&gt;foreign('user_id')-&gt;references('id')-&gt;on('users');\n            $table-&gt;string('title');\n            $table-&gt;text('content');\n            $table-&gt;timestamps();\n        });\n    }\n\n    public function down()\n    {\n        Schema::dropIfExists('posts');\n    }\n}<\/code><\/pre>\n<p>&#36816;&#34892;&#36801;&#31227;&#65306;<\/p>\n<pre><code class=\"language-bash\">php artisan migrate<\/code><\/pre>\n<h3>3. &#21019;&#24314;&#25511;&#21046;&#22120;<\/h3>\n<p>&#22312; <code>app\/Http\/Controllers<\/code> &#30446;&#24405;&#19979;&#21019;&#24314; <code>UserController<\/code> &#25511;&#21046;&#22120;&#25991;&#20214;&#65306;<\/p>\n<pre><code class=\"language-php\">\/\/ app\/Http\/Controllers\/UserController.php\nnamespace AppHttpControllers;\n\nuse AppModelsUser;\nuse IlluminateHttpRequest;\n\nclass UserController extends Controller\n{\n    public function index()\n    {\n        \/\/ &#20351;&#29992; with &#26041;&#27861;&#36827;&#34892;&#25042;&#21152;&#36733;&#27969;&#24335;&#32467;&#26524;\n        $users = User::with(['posts'])-&gt;get();\n\n        return response()-&gt;json($users);\n    }\n}<\/code><\/pre>\n<h3>4. &#37197;&#32622;&#36335;&#30001;<\/h3>\n<p>&#22312; <code>routes\/web.php<\/code> &#25991;&#20214;&#20013;&#37197;&#32622;&#36335;&#30001;&#65306;<\/p>\n<pre><code class=\"language-php\">\/\/ routes\/web.php\nuse AppHttpControllersUserController;\n\nRoute::get('\/users', [UserController::class, 'index']);<\/code><\/pre>\n<h3>5. &#27979;&#35797; API<\/h3>\n<p>&#29616;&#22312;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;&#35775;&#38382; <code>\/users<\/code> &#31471;&#28857;&#26469;&#27979;&#35797; API &#24182;&#26597;&#30475;&#25042;&#21152;&#36733;&#30340;&#32467;&#26524;&#12290;<\/p>\n<pre><code class=\"language-bash\">curl -X GET http:\/\/localhost:8000\/users<\/code><\/pre>\n<p>&#20320;&#24212;&#35813;&#20250;&#30475;&#21040;&#31867;&#20284;&#20197;&#19979;&#30340; JSON &#21709;&#24212;&#65306;<\/p>\n<pre><code class=\"language-json\">[\n    {\n        \"id\": 1,\n        \"name\": \"John Doe\",\n        \"email\": \"john.doe@example.com\",\n        \"created_at\": \"2023-04-01T12:00:00.000Z\",\n        \"updated_at\": \"2023-04-01T12:00:00.000Z\",\n        \"posts\": [\n            {\n                \"id\": 1,\n                \"user_id\": 1,\n                \"title\": \"First Post\",\n                \"content\": \"This is the first post.\",\n                \"created_at\": \"2023-04-01T12:00:00.000Z\",\n                \"updated_at\": \"2023-04-01T12:00:00.000Z\"\n            },\n            {\n                \"id\": 2,\n                \"user_id\": 1,\n                \"title\": \"Second Post\",\n                \"content\": \"This is the second post.\",\n                \"created_at\": \"2023-04-01T12:00:00.000Z\",\n                \"updated_at\": \"2023-04-01T12:00:00.000Z\"\n            }\n        ]\n    }\n]<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;<code>posts<\/code> &#20851;&#32852;&#26159;&#36890;&#36807; <code>with<\/code> &#26041;&#27861;&#36827;&#34892;&#25042;&#21152;&#36733;&#30340;&#65292;&#21482;&#26377;&#24403;&#29992;&#25143;&#35831;&#27714;&#20855;&#20307;&#30340;&#29992;&#25143;&#20449;&#24687;&#26102;&#25165;&#20250;&#21152;&#36733;&#29992;&#25143;&#30340;&#24086;&#23376;&#12290;&#36825;&#26679;&#21487;&#20197;&#26174;&#33879;&#25552;&#39640;&#24615;&#33021;&#65292;&#29305;&#21035;&#26159;&#22312;&#22788;&#29702;&#22823;&#37327;&#25968;&#25454;&#26102;&#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><h3>&#20171;&#32461;<\/h3><p>&#22788;&#29702;&#22823;&#22411;&#25968;&#25454;&#38598;&#30340;&#39640;&#25928;Web&#24212;&#29992;&#31243;&#24207;&#32463;&#24120;&#38656;&#35201;&#20351;&#29992;Laravel&#65292;&#36825;&#26159;&#19968;&#20010;&#29992;&#20110;Web&#24320;&#21457;&#30340;&#24378;&#22823;PHP&#26694;&#26550;&#12290;&#22312;&#26597;&#35810;&#22823;&#22411;&#25968;&#25454;&#38598;&#26102;&#65292;&#26377;&#26102;&#20250;&#23548;&#33268;&#20869;&#23384;&#38382;&#39064;&#21644;&#24615;&#33021;&#19979;&#38477;&#12290;&#22312;&#36825;&#31181;&#24773;&#20917;&#19979;&#65292;&#36890;&#36807;&#20351;&#29992;Laravel Query Builder&#20013;&#30340;&#25042;&#21152;&#36733;&#26469;&#33719;&#21462;&#32467;&#26524;&#29305;&#21035;&#26377;&#20248;&#21183;&#12290;&#22312;&#36825;&#31687;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23558;&#25506;&#35752;&#22914;&#20309;&#21033;&#29992;&#36825;&#31181;&#26041;&#27861;&#26469;&#25552;&#39640;&#24615;&#33021;&#24182;&#20248;&#21270;&#36164;&#28304;&#21033;&#29992;&#29575;&#12290;<\/p><h3>&#29702;&#35299;&#25042;&#21152;&#36733;&#38598;&#21512;<\/h3><p>Laravel 6.0 &#24341;&#20837;&#20102;&#24816;&#24615;&#38598;&#21512;&#30340;&#27010;&#24565;&#65292;&#20801;&#35768;&#25105;&#20204;&#36890;&#36807;&#21033;&#29992; PHP &#30340;&#29983;&#25104;&#22120;&#26469;&#22788;&#29702;&#38750;&#24120;&#22823;&#30340;&#25968;&#25454;&#38598;&#65292;&#20174;&#32780;&#22312;&#20869;&#23384;&#20351;&#29992;&#19978;&#20445;&#25345;&#20302;&#28040;&#32791;&#12290;&#29983;&#25104;&#22120;&#20801;&#35768;&#20320;&#22312;&#19981;&#19968;&#27425;&#24615;&#21152;&#36733;&#25152;&#26377;&#25968;&#25454;&#21040;&#20869;&#23384;&#30340;&#24773;&#20917;&#19979;&#36941;&#21382;&#19968;&#32452;&#25968;&#25454;&#65292;&#36825;&#23545;&#20110;&#22788;&#29702;&#22823;&#37327;&#35760;&#24405;&#26469;&#35828;&#29305;&#21035;&#21512;&#36866;&#12290;<\/p><h3>&#22330;&#26223;&#35774;&#23450;<\/h3><p>&#24819;&#35937;&#19968;&#19979;&#65292;&#26377;&#19968;&#20010;&#24212;&#29992;&#31243;&#24207;&#21253;&#21547;&#19968;&#20010;&#22823;&#22411;&#34920;&#65292;&#20854;&#20013;&#21253;&#21547;&#29992;&#25143;&#26085;&#24535;&#35760;&#24405;&#12290;&#20026;&#20102;&#26041;&#20415;&#36215;&#35265;&#65292;&#35753;&#25105;&#20204;&#20551;&#35774;&#25105;&#20204;&#38656;&#35201;&#20998;&#26512;&#36825;&#20010;&#24040;&#22823;&#30340;&#25968;&#25454;&#38598;&#20197;&#25552;&#21462;&#19968;&#20123;&#35265;&#35299;&#12290;&#20351;&#29992;&#20256;&#32479;&#30340;Eloquent&#26041;&#27861;&#21487;&#33021;&#20250;&#23548;&#33268;&#20869;&#23384;&#32791;&#23613;&#38169;&#35823;&#65292;&#22240;&#20026;Eloquent&#20250;&#23581;&#35797;&#21152;&#36733;&#25152;&#26377;&#35760;&#24405;&#21040;&#20869;&#23384;&#20013;&#12290;&#22312;&#36825;&#31181;&#24773;&#20917;&#19979;&#65292;&#21487;&#20197;&#21033;&#29992;&#25042;&#24816;&#30340;&#27969;&#24335;&#22788;&#29702;&#26469;&#33410;&#30465;&#25105;&#20204;&#30340;&#26102;&#38388;&#12290;<\/p><h3>&#35774;&#32622;&#25042;&#27969;<\/h3><pre><code>$logs = DB::table('user_logs')-&gt;lazy();\n$logs-&gt;each(function ($log) {\n    \/\/ Process each log item\n});\n<\/code><\/pre><p>&#35813;&#27573;&#20195;&#30721;&#20351;&#29992;&#20102;&#12290;<code>lazy()<\/code>&#22312;&#26597;&#35810;&#26500;&#24314;&#22120;&#20013;&#65292;&#26377;&#19968;&#20010;&#26041;&#27861;&#20801;&#35768;&#20351;&#29992;PHP&#30340;&#29983;&#25104;&#20989;&#25968;&#26816;&#32034;&#21333;&#20010;Eloquent&#27169;&#22411;&#12290;&#36825;&#20010;&#26041;&#27861;&#23558;&#32467;&#26524;&#25286;&#20998;&#25104;&#26356;&#23567;&#30340;&#37096;&#20998;&#65292;&#24182;&#22312;&#38656;&#35201;&#26102;&#36880;&#37096;&#20998;&#36827;&#34892;&#21152;&#36733;&#12290;<\/p><h3>&#27491;&#22312;&#22788;&#29702;CSV&#25991;&#20214;&#12290;<\/h3><p>&#20197;CSV&#25991;&#20214;&#20026;&#20363;&#65292;&#22914;&#26524;&#25105;&#20204;&#19981;&#24819;&#19968;&#27425;&#24615;&#23558;&#20854;&#21152;&#36733;&#21040;&#20869;&#23384;&#20013;&#22788;&#29702;&#65292;&#37027;&#20040;Laravel&#30340;&#24816;&#24615;&#38598;&#21512;&#21487;&#20197;&#24110;&#21161;&#25105;&#20204;&#39640;&#25928;&#22320;&#23436;&#25104;&#36825;&#20010;&#20219;&#21153;&#12290;<\/p><pre><code>$path = storage_path('app\/large-dataset.csv');\n$csv = LazyCollection::make(function () use ($path) {\n    $handle = fopen($path, 'rb');\n    while (!feof($handle)) {\n        yield fgetcsv($handle);\n    }\n    fclose($handle);\n});\n\n$csv-&gt;each(function ($line) {\n    \/\/ Process each CSV line\n});\n<\/code><\/pre><p>&#22312;&#36825;&#19968;&#20195;&#30721;&#20013;&#65292;&#25105;&#20204;&#36890;&#36807;&#20256;&#36882;&#19968;&#20010;&#38381;&#21253;&#26469;&#21019;&#24314;&#19968;&#20010;&#25042;&#24816;&#38598;&#21512;&#23454;&#20363;&#12290;<code>make<\/code>&#26041;&#27861;&#12290;&#38381;&#21253;&#20351;&#29992;&#20102;PHP&#30340;<code>fgetcsv()<\/code>&#35831;&#31245;&#31561;&#65292;&#25105;&#38656;&#35201;&#26356;&#22810;&#20449;&#24687;&#25165;&#33021;&#24110;&#21161;&#24744;&#12290;&#24744;&#33021;&#21542;&#25552;&#20379;CSV&#25991;&#20214;&#30340;&#20869;&#23481;&#25110;&#32773;&#26356;&#22810;&#30340;&#19978;&#19979;&#25991;&#20449;&#24687;&#65311;<code>each<\/code>&#26041;&#27861;&#35843;&#29992;&#65292;&#24490;&#29615;&#36941;&#21382;&#29983;&#25104;&#22120;&#12290;<\/p><h3>&#20998;&#32452;&#32467;&#26524;<\/h3><p>Laravel&#30340;<code>chunk<\/code>&#26041;&#27861;&#20063;&#25552;&#20379;&#20102;&#19968;&#31181;&#22788;&#29702;&#22823;&#35268;&#27169;&#25968;&#25454;&#38598;&#30340;&#26497;&#22909;&#26041;&#24335;&#12290;&#28982;&#32780;&#65292;<code>chunk<\/code>&#26041;&#27861;&#19968;&#27425;&#24615;&#21152;&#36733;&#25972;&#20010;&#20998;&#22359;&#21040;&#20869;&#23384;&#65292;&#36825;&#22312;&#22788;&#29702;&#38750;&#24120;&#22823;&#30340;&#25968;&#25454;&#38598;&#25110;&#26377;&#38480;&#30340;&#20869;&#23384;&#32422;&#26463;&#26102;&#21487;&#33021;&#20250;&#25104;&#20026;&#19968;&#20010;&#38382;&#39064;&#12290;<\/p><pre><code>DB::table('user_logs')-&gt;orderBy('id')-&gt;chunk(100, function ($logs) {\n    foreach ($logs as $log) {\n        \/\/ Process each log in the chunk\n    }\n});<\/code><\/pre><h3>&#21033;&#29992;&#28216;&#26631;&#25552;&#39640;&#20869;&#23384;&#25928;&#29575;<\/h3><p>&#30456;&#27604;&#20043;&#19979;&#65292;<code>chunk<\/code>&#26041;&#27861;&#65292;Laravel 7.x &#24341;&#20837;&#20102;&#28216;&#26631;&#65288;cursor&#65289;&#20316;&#20026;&#19968;&#31181;&#20351;&#29992; PHP &#30340;&#29983;&#25104;&#22120;&#26469;&#36941;&#21382;&#25968;&#25454;&#24211;&#32467;&#26524;&#30340;&#26041;&#24335;&#65292;&#20174;&#32780;&#22312;&#19981;&#21152;&#36733;&#23436;&#25972;&#30340;&#35760;&#24405;&#21015;&#34920;&#21040;&#20869;&#23384;&#30340;&#24773;&#20917;&#19979;&#36845;&#20195;&#25968;&#25454;&#12290;<\/p><pre><code>$logs = DB::table('user_logs')-&gt;orderBy('id')-&gt;cursor();\n\nforeach ($logs as $log) {\n    \/\/ Process each log\n}<\/code><\/pre><h3>&#29992;&#20363;&#65306;&#30005;&#23376;&#37038;&#20214;&#29992;&#25143;<\/h3><p>&#35831;&#24819;&#35937;&#24744;&#24076;&#26395;&#19981;&#20351;&#26381;&#21153;&#22120;&#20869;&#23384;&#36807;&#24230;&#36127;&#25285;&#22320;&#21521;&#25152;&#26377;&#29992;&#25143;&#21457;&#36865;&#30005;&#23376;&#37038;&#20214;&#12290;&#20197;&#19979;&#26159;&#19968;&#31181;&#31616;&#27905;&#30340;&#26041;&#27861;&#65306;<\/p><pre><code>foreach (User::cursor() as $user) {\n    Mail::send('email.view', compact('user'), function ($message) use ($user) {\n        $message-&gt;to($user-&gt;email);\n    });\n}<\/code><\/pre><p>&#20197;&#20809;&#26631;&#27861;&#65292;&#27599;&#19968;&#27493;&#37117;&#20381;&#36182;&#20110;&#19978;&#19968;&#27493;&#30340;&#32467;&#26524;&#12290;<code>$user<\/code>&#23545;&#35937;&#20165;&#22312;&#24490;&#29615;&#20307;&#30340;&#25191;&#34892;&#26399;&#38388;&#20445;&#30041;&#22312;&#20869;&#23384;&#20013;&#65292;&#20043;&#21518;&#20250;&#34987;&#37322;&#25918;&#65292;&#20174;&#32780;&#26174;&#33879;&#20943;&#23569;&#20869;&#23384;&#36127;&#36733;&#12290;<\/p><h3>&#26368;&#20339;&#23454;&#36341;&#21644;&#32771;&#34385;&#22240;&#32032;<\/h3><p>&#24322;&#24120;&#22788;&#29702;&#65306;&#22312;foreach&#24490;&#29615;&#20013;&#27880;&#24847;&#22914;&#20309;&#22788;&#29702;&#24322;&#24120;&#65292;&#36825;&#21487;&#33021;&#20250;&#24433;&#21709;&#36845;&#20195;&#36807;&#31243;&#12290;<\/p><p>&#27979;&#35797;&#21644;&#20248;&#21270;&#65306;&#21363;&#20351;&#20351;&#29992;&#25042;&#21152;&#36733;&#65292;&#20063;&#24212;&#22987;&#32456;&#27979;&#35797;&#20197;&#20248;&#21270;&#26597;&#35810;&#65292;&#20174;&#32780;&#25552;&#39640;&#24615;&#33021;&#12290;<\/p><p>&#25968;&#25454;&#24211;&#28216;&#26631; vs. &#25042;&#24816;&#38598;&#21512;&#65306;&#24403;&#22788;&#29702;&#25968;&#25454;&#24211;&#32467;&#26524;&#26102;&#65292;&#25968;&#25454;&#24211;&#28216;&#26631;&#26159;&#26368;&#22909;&#30340;&#36873;&#25321;&#12290;&#25042;&#24816;&#38598;&#21512;&#21017;&#36866;&#29992;&#20110;&#20219;&#20309;&#21487;&#26522;&#20030;&#30340;PHP&#32467;&#26500;&#12290;<\/p><p>&#26126;&#26234;&#22320;&#20351;&#29992;&#25042;&#21152;&#36733;&#65306;&#22914;&#26524;&#20320;&#38656;&#35201;&#30456;&#20851;&#27169;&#22411;&#65292;&#35831;&#35760;&#20303;&#65292;&#25042;&#21152;&#36733;&#21487;&#33021;&#20250;&#23548;&#33268;N+1&#26597;&#35810;&#38382;&#39064;&#12290;&#30456;&#21453;&#65292;&#24212;&#35813;&#20351;&#29992; eager&#21152;&#36733;&#12290;<code>with()<\/code>&#22312;&#38656;&#35201;&#26102;&#21160;&#24577;&#21152;&#36733;&#20851;&#32852;&#20851;&#31995;&#65292;&#20197;&#20445;&#25345;&#25928;&#29575;&#12290;<\/p><h3>&#32467;&#35770;<\/h3><p>&#20351;&#29992;Laravel&#30340;&#25042;&#21152;&#36733;&#38598;&#21512;&#21644;&#28216;&#26631;&#21151;&#33021;&#21487;&#20197;&#26174;&#33879;&#25552;&#39640;Laravel&#24212;&#29992;&#31243;&#24207;&#22788;&#29702;&#22823;&#37327;&#25968;&#25454;&#38598;&#26102;&#30340;&#24615;&#33021;&#12290;&#36890;&#36807;&#36880;&#34892;&#33719;&#21462;&#21644;&#22788;&#29702;&#65292;&#24744;&#30340;&#24212;&#29992;&#21487;&#20197;&#33410;&#30465;&#20869;&#23384;&#24182;&#20943;&#23569;&#24615;&#33021;&#29942;&#39048;&#30340;&#39118;&#38505;&#12290;&#23454;&#39564;&#36825;&#20123;&#36873;&#39033;&#65292;&#24182;&#25214;&#21040;&#26368;&#36866;&#21512;&#24744;&#29305;&#23450;&#24212;&#29992;&#38656;&#27714;&#21644;&#32422;&#26463;&#26465;&#20214;&#30340;&#24179;&#34913;&#28857;&#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 &#20013;&#65292;&#25105;&#20204;&#21487;&#20197;&#36890;&#36807;&#20351;&#29992; <code>withTrashed()<\/code> &#26041;&#27861;&#26469;&#23454;&#29616;&#23545;&#20851;&#32852;&#34920;&#30340;&#25042;&#21152;&#36733;&#12290;&#36825;&#21487;&#20197;&#24110;&#21161;&#25105;&#20204;&#22312;&#38656;&#35201;&#30340;&#26102;&#20505;&#25165;&#20174;&#25968;&#25454;&#24211;&#20013;&#33719;&#21462;&#20851;&#32852;&#25968;&#25454;&#65292;&#20174;&#32780;&#25552;&#39640;&#24615;&#33021;&#12290;<\/p>\n<h3>&#22522;&#26412;&#27010;&#24565;<\/h3>\n<p><code>withTrashed()<\/code> &#26041;&#27861;&#20801;&#35768;&#20320;&#22312;&#21019;&#24314;&#26597;&#35810;&#26102;&#25351;&#23450;&#20851;&#32852;&#23383;&#27573;&#26159;&#21542;&#24212;&#35813;&#34987;&#32531;&#23384;&#12290;&#40664;&#35748;&#24773;&#20917;&#19979;&#65292;&#20851;&#32852;&#23383;&#27573;&#19981;&#20250;&#34987;&#32531;&#23384;&#12290;&#36890;&#36807;&#35774;&#32622; <code>withTrashed(true)<\/code> &#21442;&#25968;&#65292;&#21487;&#20197;&#24378;&#21046;&#20851;&#32852;&#23383;&#27573;&#34987;&#32531;&#23384;&#12290;<\/p>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#21517;&#20026; <code>User<\/code> &#30340;&#27169;&#22411;&#21644;&#19968;&#20010;&#21517;&#20026; <code>Post<\/code> &#30340;&#27169;&#22411;&#65292;&#20854;&#20013;&#21253;&#21547;&#19968;&#20010;&#21517;&#20026; <code>user_id<\/code> &#30340;&#22806;&#38190;&#23383;&#27573;&#25351;&#21521; <code>User<\/code> &#34920;&#20013;&#30340; id &#23383;&#27573;&#12290;&#22914;&#26524;&#25105;&#20204;&#24819;&#25042;&#21152;&#36733;&#29992;&#25143;&#20449;&#24687;&#65292;&#25105;&#20204;&#21487;&#20197;&#36825;&#26679;&#20570;&#65306;<\/p>\n<pre><code class=\"language-php\">\/\/ User.php\npublic function posts()\n{\n    return $this-&gt;hasMany(Post::class, 'user_id');\n}\n\n\/\/ Post.php\npublic function user()\n{\n    return $this-&gt;belongsTo(User::class);\n}<\/code><\/pre>\n<p>&#29616;&#22312;&#65292;&#24403;&#25105;&#20204;&#22312;&#25511;&#21046;&#22120;&#25110;&#20854;&#20182;&#22320;&#26041;&#20351;&#29992; <code>User::all()<\/code> &#26102;&#65292;&#22914;&#26524;&#29992;&#25143;&#27809;&#26377;&#20851;&#32852;&#30340;&#24086;&#23376;&#65288;&#21363; <code>posts<\/code> &#20851;&#32852;&#20026;&#31354;&#65289;&#65292;&#37027;&#20040;&#25105;&#20204;&#23558;&#20250;&#33719;&#24471;&#19968;&#20010;&#31354;&#30340;&#32467;&#26524;&#38598;&#12290;&#21482;&#26377;&#24403;&#26377;&#25968;&#25454;&#21487;&#29992;&#26102;&#65292;&#25165;&#20250;&#20174;&#25968;&#25454;&#24211;&#20013;&#26816;&#32034;&#36825;&#20123;&#25968;&#25454;&#12290;<\/p>\n<h3>&#27880;&#24847;&#20107;&#39033;<\/h3>\n<ul>\n<li><strong>&#20248;&#21270;<\/strong>&#65306;&#34429;&#28982;&#36825;&#20010;&#29305;&#24615;&#26377;&#21161;&#20110;&#25552;&#21319;&#24615;&#33021;&#65292;&#20294;&#36807;&#24230;&#20351;&#29992;&#21487;&#33021;&#20250;&#23548;&#33268;&#20869;&#23384;&#27844;&#28431;&#38382;&#39064;&#12290;<\/li>\n<li><strong>&#27979;&#35797;<\/strong>&#65306;&#30830;&#20445;&#22312;&#36827;&#34892;&#22823;&#35268;&#27169;&#26597;&#35810;&#20043;&#21069;&#26816;&#26597;&#25968;&#25454;&#21487;&#29992;&#24615;&#65292;&#24182;&#19988;&#21482;&#22312;&#38656;&#35201;&#26102;&#25191;&#34892;&#26597;&#35810;&#25805;&#20316;&#12290;<\/li>\n<\/ul>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<pre><code class=\"language-php\">use IlluminateSupportFacadesDB;\n\nfunction getPostsForUser($userId)\n{\n    $user = User::withTrashed()-&gt;findOrFail($userId);\n\n    \/\/ &#33719;&#21462;&#29992;&#25143;&#30340;&#25152;&#26377;&#24086;&#23376;\n    $posts = $user-&gt;posts();\n\n    if ($posts-&gt;isEmpty()) {\n        return \"No posts found for this user.\";\n    }\n\n    return $posts;\n}\n\necho getPostsForUser(1); \/\/ &#36755;&#20986;&#25152;&#26377;&#29992;&#25143;&#30340;&#24086;&#23376;<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#39318;&#20808;&#36890;&#36807; <code>$userId<\/code> &#26597;&#35810;&#29992;&#25143;&#12290;&#28982;&#21518;&#65292;&#25105;&#20204;&#20351;&#29992; <code>withTrashed()<\/code> &#26469;&#33719;&#21462;&#20851;&#32852;&#30340;&#24086;&#23376;&#12290;&#22914;&#26524;&#27809;&#26377;&#25214;&#21040;&#20219;&#20309;&#24086;&#23376;&#65292;&#25105;&#20204;&#23558;&#36820;&#22238;&#19968;&#26465;&#28040;&#24687;&#34920;&#31034;&#27809;&#26377;&#25214;&#21040;&#24086;&#23376;&#12290;&#36825;&#26679;&#65292;&#21363;&#20351;&#29992;&#25143;&#27809;&#26377;&#24086;&#23376;&#65292;&#25105;&#20204;&#20063;&#19981;&#20250;&#23581;&#35797;&#20174;&#25968;&#25454;&#24211;&#20013;&#33719;&#21462;&#23427;&#20204;&#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;&#22312; Laravel &#26597;&#35810;&#26500;&#36896;&#22120;&#20013;&#25042;&#21152;&#36733;&#27969;&#24335;&#038;#3..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-917","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\/917","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=917"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=917"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=917"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=917"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}