{"id":835,"date":"2025-06-12T00:49:00","date_gmt":"2025-06-11T16:49:00","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/835.html"},"modified":"2025-06-12T00:49:00","modified_gmt":"2025-06-11T16:49:00","slug":"%e5%a6%82%e4%bd%95%e5%b0%86next-js%e4%b8%8elaravel%e9%9b%86%e6%88%90%ef%bc%9a%e5%ae%9e%e7%94%a8%e6%8c%87%e5%8d%97","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/835.html","title":{"rendered":"\u5982\u4f55\u5c06Next.js\u4e0eLaravel\u96c6\u6210\uff1a\u5b9e\u7528\u6307\u5357"},"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;&#23558;Next.js&#19982;Laravel&#38598;&#25104;&#65306;&#23454;&#29992;&#25351;&#21335;<\/p>\n<p>Next.js&#21644;Laravel&#26159;&#20004;&#31181;&#27969;&#34892;&#30340;&#21069;&#31471;&#21644;&#21518;&#31471;&#26694;&#26550;&#65292;&#23427;&#20204;&#21508;&#33258;&#26377;&#20854;&#29420;&#29305;&#30340;&#20248;&#21183;&#12290;&#23558;&#36825;&#20004;&#32773;&#38598;&#25104;&#22312;&#19968;&#36215;&#21487;&#20197;&#20026;&#20320;&#30340;&#39033;&#30446;&#25552;&#20379;&#26356;&#22810;&#30340;&#21151;&#33021;&#21644;&#28789;&#27963;&#24615;&#12290;&#20197;&#19979;&#26159;&#19968;&#20123;&#23454;&#29992;&#30340;&#27493;&#39588;&#21644;&#24314;&#35758;&#65292;&#24110;&#21161;&#20320;&#22312;Next.js&#21644;Laravel&#20043;&#38388;&#23454;&#29616;&#26080;&#32541;&#38598;&#25104;&#12290;<\/p>\n<h3>1. &#23433;&#35013;Node.js&#21644;npm<\/h3>\n<p>&#39318;&#20808;&#65292;&#30830;&#20445;&#20320;&#24050;&#32463;&#23433;&#35013;&#20102;Node.js&#21644;npm&#12290;&#20320;&#21487;&#20197;&#20174;<a href=\"https:\/\/www.zhaozhao123.cn\/skin\/go?url=aHR0cHM6Ly9ub2RlanMub3JnLw==\" rel=\"noopener noreferrer nofollow\">Node.js&#23448;&#32593;<\/a>&#19979;&#36733;&#24182;&#23433;&#35013;&#26368;&#26032;&#29256;&#26412;&#12290;<\/p>\n<h3>2. &#21019;&#24314;&#19968;&#20010;&#26032;&#30340;Next.js&#39033;&#30446;<\/h3>\n<p>&#20351;&#29992;Create React App&#26469;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;Next.js&#39033;&#30446;&#65306;<\/p>\n<pre><code class=\"language-bash\">npx create-next-app my-next-app\ncd my-next-app<\/code><\/pre>\n<h3>3. &#28155;&#21152;Laravel&#21040;&#20320;&#30340;&#39033;&#30446;<\/h3>\n<p>&#20320;&#21487;&#20197;&#36890;&#36807;&#22810;&#31181;&#26041;&#24335;&#28155;&#21152;Laravel&#21040;&#20320;&#30340;&#39033;&#30446;&#12290;&#26368;&#31616;&#21333;&#30340;&#26041;&#27861;&#26159;&#20351;&#29992;Composer&#26469;&#23433;&#35013;Laravel&#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>4. &#37197;&#32622;Laravel API<\/h3>\n<p>Laravel API&#21487;&#20197;&#36890;&#36807;&#22810;&#31181;&#26041;&#24335;&#37197;&#32622;&#12290;&#26368;&#24120;&#29992;&#30340;&#26159;&#20351;&#29992;<code>php artisan make:controller ApiController<\/code>&#26469;&#29983;&#25104;&#25511;&#21046;&#22120;&#65292;&#24182;&#22312;&#36335;&#30001;&#25991;&#20214;&#65288;&#22914;<code>routes\/api.php<\/code>&#65289;&#20013;&#23450;&#20041;API&#36335;&#30001;&#12290;<\/p>\n<h3>5. &#22312;Next.js&#20013;&#35843;&#29992;Laravel API<\/h3>\n<p>&#25509;&#19979;&#26469;&#65292;&#20320;&#38656;&#35201;&#22312;&#20320;&#30340;Next.js&#39033;&#30446;&#20013;&#35843;&#29992;Laravel API&#12290;&#20320;&#21487;&#20197;&#20351;&#29992;Fetch API&#25110;Axios&#24211;&#26469;&#23454;&#29616;&#36825;&#19968;&#28857;&#12290;<\/p>\n<h4>&#20351;&#29992;Fetch API<\/h4>\n<p>&#22312;&#20320;&#30340;Next.js&#32452;&#20214;&#20013;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;Fetch API&#26469;&#35843;&#29992;Laravel API&#65306;<\/p>\n<pre><code class=\"language-javascript\">import React, { useState, useEffect } from 'react';\n\nconst MyComponent = () =&gt; {\n  const [data, setData] = useState(null);\n\n  useEffect(() =&gt; {\n    fetch('http:\/\/localhost:8000\/api\/data')\n      .then(response =&gt; response.json())\n      .then(data =&gt; setData(data))\n      .catch(error =&gt; console.error('Error fetching data:', error));\n  }, []);\n\n  return (\n    &lt;div&gt;\n      {data ? (\n        &lt;ul&gt;\n          {data.map(item =&gt; (\n            &lt;li key={item.id}&gt;{item.name}&lt;\/li&gt;\n          ))}\n        &lt;\/ul&gt;\n      ) : (\n        &lt;p&gt;Loading...&lt;\/p&gt;\n      )}\n    &lt;\/div&gt;\n  );\n};\n\nexport default MyComponent;<\/code><\/pre>\n<h4>&#20351;&#29992;Axios<\/h4>\n<p>&#22914;&#26524;&#20320;&#26356;&#21916;&#27426;&#20351;&#29992;Axios&#65292;&#21487;&#20197;&#22312;&#20320;&#30340;Next.js&#32452;&#20214;&#20013;&#24341;&#20837;&#23427;&#65306;<\/p>\n<pre><code class=\"language-javascript\">import React, { useState, useEffect } from 'react';\nimport axios from 'axios';\n\nconst MyComponent = () =&gt; {\n  const [data, setData] = useState(null);\n\n  useEffect(() =&gt; {\n    axios.get('http:\/\/localhost:8000\/api\/data')\n      .then(response =&gt; setData(response.data))\n      .catch(error =&gt; console.error('Error fetching data:', error));\n  }, []);\n\n  return (\n    &lt;div&gt;\n      {data ? (\n        &lt;ul&gt;\n          {data.map(item =&gt; (\n            &lt;li key={item.id}&gt;{item.name}&lt;\/li&gt;\n          ))}\n        &lt;\/ul&gt;\n      ) : (\n        &lt;p&gt;Loading...&lt;\/p&gt;\n      )}\n    &lt;\/div&gt;\n  );\n};\n\nexport default MyComponent;<\/code><\/pre>\n<h3>6. &#36816;&#34892;&#39033;&#30446;<\/h3>\n<p>&#26368;&#21518;&#65292;&#36816;&#34892;&#20320;&#30340;Next.js&#39033;&#30446;&#65306;<\/p>\n<pre><code class=\"language-bash\">npm run dev<\/code><\/pre>\n<p>&#36825;&#26679;&#65292;&#20320;&#23601;&#25104;&#21151;&#22320;&#23558;Next.js&#19982;Laravel&#38598;&#25104;&#22312;&#19968;&#36215;&#12290;&#20320;&#21487;&#20197;&#26681;&#25454;&#38656;&#35201;&#25193;&#23637;&#21644;&#33258;&#23450;&#20041;&#36825;&#20010;&#38598;&#25104;&#65292;&#20197;&#28385;&#36275;&#20320;&#30340;&#20855;&#20307;&#38656;&#27714;&#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>&#20171;&#32461;<\/h2><p>&#21033;&#29992;&#20840;&#26632;&#28508;&#21147;&#65292;&#32467;&#21512;Laravel&#20316;&#20026;&#21518;&#31471;&#26694;&#26550;&#21644;Next.js&#20316;&#20026;&#21069;&#31471;&#26694;&#26550;&#65292;&#27491;&#22312;&#25104;&#20026;&#24320;&#21457;&#32773;&#20204;&#30340;&#36234;&#26469;&#36234;&#26377;&#21560;&#24341;&#21147;&#30340;&#36235;&#21183;&#12290;&#26412;&#25351;&#21335;&#28085;&#30422;&#20102;&#25972;&#21512;Next.js&#19982;Laravel&#30340;&#27493;&#39588;&#27969;&#31243;&#65292;&#21019;&#24314;&#26080;&#32541;&#24320;&#21457;&#20307;&#39564;&#30340;&#36807;&#31243;&#12290;<\/p><h3>&#29702;&#35299;&#22534;&#26632;<\/h3><p>Laravel &#20316;&#20026;&#19968;&#27454;&#24378;&#22823;&#30340;&#21518;&#31471;PHP&#26694;&#26550;&#65292;&#36127;&#36131;&#22788;&#29702;&#19994;&#21153;&#36923;&#36753;&#21644;&#25968;&#25454;&#31649;&#29702;&#12290;Next.js &#26159;&#19968;&#20010;&#22522;&#20110; React &#30340;&#26694;&#26550;&#65292;&#25552;&#20379;&#26381;&#21153;&#22120;&#28210;&#26579;&#25110;&#38745;&#24577;&#29983;&#25104;&#30340; React &#24212;&#29992;&#31243;&#24207;&#30340;&#24378;&#22823;&#21151;&#33021;&#12290;&#25972;&#21512;&#36825;&#20004;&#20010;&#24037;&#20855;&#21487;&#20197;&#21019;&#24314;&#39640;&#24615;&#33021;&#30340;&#20840;&#26632;&#24212;&#29992;&#12290;<\/p><h3>&#20808;&#20915;&#26465;&#20214;<\/h3><p>PHP&#20381;&#36182;&#31649;&#29702;&#22120;<\/p><p>Node.js &#21644; npm &#24050;&#23433;&#35013;&#12290;<\/p><p>&#29702;&#35299;JavaScript&#21644;React<\/p><p>&#22522;&#26412;&#30340;PHP&#21644;Laravel&#30693;&#35782;<\/p><h2>&#39033;&#30446;&#35774;&#32622;<\/h2><p>&#25105;&#20204;&#39318;&#20808;&#22312;&#32479;&#19968;&#30340;&#39033;&#30446;&#30446;&#24405;&#19979;&#35774;&#32622;&#19968;&#20010;&#26032;&#30340;Laravel&#39033;&#30446;&#21644;&#19968;&#20010;Next.js&#24212;&#29992;&#12290;<\/p><pre><code>composer create-project laravel\/laravel laravel-nextjs\nmkdir laravel-nextjs\/frontend\nnpx create-next-app laravel-nextjs\/frontend\n<\/code><\/pre><p>&#35813;&#21629;&#20196;&#21019;&#24314;&#20102;&#19968;&#20010;&#26032;&#30340;Laravel&#39033;&#30446;&#20197;&#21450;&#19968;&#20010;&#21517;&#20026;&ldquo;frontend&rdquo;&#30340;&#30446;&#24405;&#65292;&#35813;&#30446;&#24405;&#23558;&#21253;&#21547;Next.js&#24212;&#29992;&#12290;<\/p><h2>API&#24320;&#21457;<\/h2><p>&#22312;&#20851;&#27880;Next.js&#20043;&#21069;&#65292;&#25105;&#20204;&#39318;&#20808;&#38656;&#35201;&#26292;&#38706;Laravel&#20013;&#30340;&#24517;&#35201;API&#12290;&#20320;&#21487;&#20197;&#20351;&#29992;&#24120;&#35268;&#30340;Laravel&#36335;&#30001;&#25110;&#32773;&#28145;&#20837;API&#36164;&#28304;&#20197;&#22788;&#29702;&#26356;&#22797;&#26434;&#30340;&#22330;&#26223;&#12290;&#19968;&#20010;&#31034;&#20363;API&#36335;&#30001;&#21487;&#33021;&#22914;&#19979;&#25152;&#31034;&#65306;<\/p><pre><code>Route::get('\/api\/users', function () {\n    return User::all();\n});\n<\/code><\/pre><h2>&#25972;&#21512; Next.js<\/h2><p>&#29616;&#22312;&#20999;&#25442;&#21040;Next.js&#30446;&#24405;&#65292;&#24320;&#22987;&#35774;&#32622;API&#36890;&#20449;&#12290;<\/p><pre><code>cd laravel-nextjs\/frontend\n<\/code><\/pre><p>&#19979;&#19968;&#27493;&#26159;&#35774;&#32622;&#19968;&#20010;API&#23458;&#25143;&#31471;&#65292;&#20363;&#22914;Axios&#65292;&#20197;&#20415;&#19982;Laravel&#21518;&#31471;&#36827;&#34892;&#20132;&#20114;&#12290;<\/p><pre><code>npm install axios\n<\/code><\/pre><p>&#21019;&#24314;&#19968;&#20010;API&#23454;&#29992;&#31243;&#24207;&#25991;&#20214;&#20197;&#36827;&#34892;&#35831;&#27714;&#65306;<\/p><pre><code>\/\/ utils\/api.js\nimport axios from 'axios';\n\nconst APIEndpoint = axios.create({\n    baseURL: 'http:\/\/localhost:8000\/api',\n});\n\nexport const getAllUsers = async () =&gt; {\n    const response = await APIEndpoint.get('\/users');\n    return response.data;\n};\n<\/code><\/pre><p>&#37197;&#32622;Axios&#21518;&#65292;&#29616;&#22312;&#21487;&#20197;&#20174;React&#32452;&#20214;&#20013;&#35843;&#29992;Laravel API&#12290;<\/p><h2>&#36328;&#22495;&#36164;&#28304;&#20849;&#20139;&#37197;&#32622;<\/h2><p>&#22312;&#38598;&#25104;&#36807;&#31243;&#20013;&#65292;&#38656;&#35201;&#32771;&#34385;&#36328;&#28304;&#36164;&#28304;&#20849;&#20139;&#65288;CORS&#65289;&#12290;Laravel &#20250;&#33258;&#24102;&#19968;&#20010; CORS &#21253;&#65292;&#21487;&#20197;&#36890;&#36807;&#20197;&#19979;&#26041;&#24335;&#37197;&#32622;&#65306;<\/p><pre><code>\/\/ In Laravel, edit the 'cors.php' in the 'config' directory\n'paths' =&gt; ['api\/*'],\n\n'allowed_methods' =&gt; ['*'],\n'allowed_origins' =&gt; ['http:\/\/localhost:3000'], \/\/ Allow the Next.js app\n'allowed_origins_patterns' =&gt; [],\n'allowed_headers' =&gt; ['*'],\n'exposed_headers' =&gt; [],\n'max_age' =&gt; 0,\n'supports_credentials' =&gt; false,\n<\/code><\/pre><p>&#36825;&#20123;&#35774;&#32622;&#30830;&#20445;&#20102;&#26469;&#33258;Next.js&#21069;&#31471;&#30340;&#35831;&#27714;&#33021;&#22815;&#34987;Laravel&#26381;&#21153;&#22120;&#25509;&#21463;&#12290;<\/p><h2>&#38745;&#24577;&#36164;&#20135;&#22788;&#29702;<\/h2><p>Laravel &#25552;&#20379;&#20102;&#19968;&#20010;&#24378;&#22823;&#30340;&#36164;&#20135;&#32534;&#35793;&#22120;&#65292;&#21517;&#20026; Laravel Mix&#65292;&#21487;&#20197;&#37197;&#32622;&#20026;&#22788;&#29702; Laravel &#21644; Next.js &#30340;&#36164;&#20135;&#12290;&#28982;&#32780;&#65292;&#20026;&#20102;&#31616;&#21270;&#36215;&#35265;&#65292;&#25512;&#33616;&#35753; Next.js &#31649;&#29702;&#20854;&#33258;&#24049;&#30340;&#36164;&#20135;&#65292;&#32780;&#21482;&#22312; Laravel &#20391;&#20351;&#29992; Laravel Mix&#12290;<\/p><h2>&#36523;&#20221;&#39564;&#35777;<\/h2><p>&#35748;&#35777;&#22312;&#20219;&#20309;&#20840;&#26632;&#24212;&#29992;&#20013;&#37117;&#33267;&#20851;&#37325;&#35201;&#12290;Laravel Sanctum &#21487;&#20197;&#29992;&#20110;&#25552;&#20379;&#22522;&#20110; Cookie &#30340;&#20250;&#35805;&#35748;&#35777;&#65292;&#36825;&#23545;&#20110;&#19982; Next.js &#37197;&#21512;&#20351;&#29992;&#30340;&#21333;&#39029;&#24212;&#29992;&#31243;&#24207;&#65288;SPA&#65289;&#38750;&#24120;&#26377;&#25928;&#12290;&#37197;&#32622;&#28041;&#21450;&#35774;&#32622;&#20250;&#35805;&#22495;&#20197;&#21450;&#30830;&#20445;&#27599;&#27425;&#35831;&#27714;&#20013;&#37117;&#20250;&#21457;&#36865; Cookies&#65306;<\/p><pre><code>\/\/ config\/sanctum.php\n'stateful' =&gt; explode(',', env('SANCTUM_STATEFUL_DOMAINS', 'localhost:3000')), \/\/ add your Next.js development URL\n\n\/\/ In the Next.js application, utilize Axios interceptors to send cookies\naxios.defaults.withCredentials = true;\n<\/code><\/pre><p>&#36825;&#31181;&#37197;&#32622;&#20801;&#35768;&#24744;&#30340; Next.js &#21069;&#31471;&#26080;&#32541;&#19982; Laravel &#21518;&#31471;&#36827;&#34892;&#36523;&#20221;&#39564;&#35777;&#12290;<\/p><h2>&#36816;&#34892;&#20004;&#20010;&#26381;&#21153;&#22120;<\/h2><p>&#21551;&#21160;Laravel&#24320;&#21457;&#26381;&#21153;&#22120;&#65306;<\/p><pre><code>php artisan serve\n<\/code><\/pre><p>&#22312;&#26032;&#32456;&#31471;&#20013;&#36816;&#34892;Next.js&#24320;&#21457;&#26381;&#21153;&#22120;&#65306;<\/p><pre><code>npm run dev\n<\/code><\/pre><p>&#35831;&#25552;&#20379;&#26356;&#22810;&#20449;&#24687;&#65292;&#20197;&#20415;&#25105;&#33021;&#22815;&#20026;&#24744;&#25552;&#20379;&#20934;&#30830;&#30340;&#24110;&#21161;&#12290;<code>http:\/\/localhost:3000<\/code>&#35201;&#26597;&#30475;&#24744;&#30340;Next.js&#21069;&#31471;&#65292;&#20197;&#21450;&#19982;Laravel&#21518;&#31471;&#20132;&#20114;&#65292;&#35831;&#35775;&#38382;&#20197;&#19979;&#38142;&#25509;&#65306;[&#24744;&#30340;&#24212;&#29992;&#31243;&#24207;&#32593;&#22336;]&#12290;<code>http:\/\/localhost:8000<\/code>&#24050;&#25910;&#21040;&#65292;&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<\/p><h2>&#29983;&#20135;&#26500;&#24314;&#21644;&#37096;&#32626;<\/h2><p>&#22312;&#37096;&#32626;&#24212;&#29992;&#26102;&#65292;&#24744;&#38656;&#35201;&#20998;&#21035;&#37096;&#32626;&#20004;&#20010;&#20195;&#30721;&#24211;&#12290;&#20256;&#32479;&#19978;&#65292;Next.js &#36890;&#24120;&#37096;&#32626;&#21040;&#24179;&#21488;&#22914; Vercel &#25110; Netlify&#65292;&#32780; Laravel &#21487;&#20197;&#37096;&#32626;&#21040;&#34394;&#25311;&#19987;&#29992;&#26381;&#21153;&#22120;&#65288;VPS&#65289;&#25110;&#20854;&#20182;&#24179;&#21488;&#22914; Laravel Forge&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>Laravel &#21644; Next.js &#30340;&#32467;&#21512;&#21487;&#20197;&#21019;&#24314;&#24378;&#22823;&#30340;&#20840;&#26632;&#24212;&#29992;&#31243;&#24207;&#12290;&#34429;&#28982;&#26412;&#25351;&#21335;&#24050;&#32463;&#20171;&#32461;&#20102;&#22522;&#30784;&#27493;&#39588;&#65292;&#20294;&#38543;&#30528;&#24744;&#23545;&#22534;&#26632;&#30340;&#29087;&#24713;&#31243;&#24230;&#22686;&#21152;&#65292;&#24744;&#21487;&#20197;&#36827;&#19968;&#27493;&#20248;&#21270;&#21644;&#37197;&#32622;&#20197;&#23454;&#29616;&#26356;&#22909;&#30340;&#25928;&#26524;&#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;&#36827;&#34892;Next.js&#19982;Laravel&#30340;&#38598;&#25104;&#26102;&#65292;&#20320;&#38656;&#35201;&#36981;&#24490;&#20197;&#19979;&#27493;&#39588;&#65306;<\/p>\n<ol>\n<li>&#23433;&#35013;Node.js&#21644;npm&#65288;&#22914;&#26524;&#23578;&#26410;&#23433;&#35013;&#65289;<\/li>\n<li>&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;Next.js&#39033;&#30446;<\/li>\n<li>&#20351;&#29992;NPM&#23433;&#35013;Laravel&#26694;&#26550;<\/li>\n<li>&#22312;Next.js&#39033;&#30446;&#20013;&#37197;&#32622;Laravel&#30340;&#29615;&#22659;&#21464;&#37327;<\/li>\n<li>&#20174;Laravel&#39033;&#30446;&#20013;&#23548;&#20986;&#25511;&#21046;&#22120;&#25991;&#20214;&#21040;Next.js&#39033;&#30446;&#20013;<\/li>\n<li>&#26356;&#26032;Next.js&#39033;&#30446;&#30340;&#36335;&#30001;&#21644;&#38745;&#24577;&#25991;&#20214;&#22788;&#29702;<\/li>\n<\/ol>\n<p>&#20197;&#19979;&#26159;&#20855;&#20307;&#30340;&#27493;&#39588;&#21450;&#31034;&#20363;&#20195;&#30721;&#65306;<\/p>\n<h3>&#27493;&#39588;1: &#23433;&#35013;Node.js&#21644;npm<\/h3>\n<p>&#39318;&#20808;&#30830;&#20445;&#20320;&#24050;&#32463;&#23433;&#35013;&#20102;Node.js&#21644;npm&#12290;&#22914;&#26524;&#27809;&#26377;&#65292;&#35831;&#35775;&#38382;<a href=\"https:\/\/www.zhaozhao123.cn\/skin\/go?url=aHR0cHM6Ly9ub2RlanMub3JnLw==\" rel=\"noopener noreferrer nofollow\" rel=\"nofollow\">https:\/\/nodejs.org\/<\/a> &#19979;&#36733;&#24182;&#23433;&#35013;&#12290;<\/p>\n<h3>&#27493;&#39588;2: &#21019;&#24314;&#19968;&#20010;&#26032;&#30340;Next.js&#39033;&#30446;<\/h3>\n<p>&#20351;&#29992;<code>npx create-next-app<\/code>&#21629;&#20196;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;Next.js&#39033;&#30446;&#65306;<\/p>\n<pre><code class=\"language-bash\">npx create-next-app my-project<\/code><\/pre>\n<p>&#36825;&#23558;&#20250;&#29983;&#25104;&#19968;&#20010;&#21517;&#20026;<code>my-project<\/code>&#30340;&#26032;&#30446;&#24405;&#65292;&#20854;&#20013;&#21253;&#21547;&#20102;&#22522;&#26412;&#30340;Next.js&#24212;&#29992;&#31243;&#24207;&#12290;<\/p>\n<h3>&#27493;&#39588;3: &#20351;&#29992;NPM&#23433;&#35013;Laravel&#26694;&#26550;<\/h3>\n<p>&#22312;&#26032;&#39033;&#30446;&#26681;&#30446;&#24405;&#19979;&#65292;&#36816;&#34892;&#20197;&#19979;&#21629;&#20196;&#26469;&#23433;&#35013;Laravel:<\/p>\n<pre><code class=\"language-bash\">cd my-project\nnpm install laravel --save-dev<\/code><\/pre>\n<p>&#36825;&#23558;&#22312;&#24403;&#21069;&#39033;&#30446;&#30446;&#24405;&#20013;&#23433;&#35013;Laravel&#65292;&#24182;&#23558;&#20854;&#20445;&#23384;&#20026;<code>laravel<\/code>&#27169;&#22359;&#12290;<\/p>\n<h3>&#27493;&#39588;4: &#37197;&#32622;Laravel&#30340;&#29615;&#22659;&#21464;&#37327;<\/h3>\n<p>&#25171;&#24320;&#20320;&#30340;<code>.env<\/code>&#25991;&#20214;&#65292;&#28982;&#21518;&#28155;&#21152;&#20197;&#19979;&#34892;&#65292;&#26681;&#25454;&#20320;&#30340;&#38656;&#35201;&#35774;&#32622;&#29615;&#22659;&#21464;&#37327;&#65306;<\/p>\n<pre><code class=\"language-bash\">LARAVEL_APP_KEY=your_key_here\nLARAVEL_APP_NAME=my_project<\/code><\/pre>\n<p>&#35831;&#26367;&#25442;&#19978;&#36848;&#34892;&#20013;&#30340;&#20540;&#20026;&#20320;&#23454;&#38469;&#25317;&#26377;&#30340;&#29615;&#22659;&#21464;&#37327;&#12290;<\/p>\n<h3>&#27493;&#39588;5: &#23548;&#20837;&#25511;&#21046;&#22120;&#25991;&#20214;&#21040;Next.js&#39033;&#30446;<\/h3>\n<p>&#29616;&#22312;&#65292;&#25105;&#20204;&#38656;&#35201;&#23548;&#20837;&#26469;&#33258;Laravel&#30340;&#25511;&#21046;&#22120;&#25991;&#20214;&#21040;&#25105;&#20204;&#30340;Next.js&#39033;&#30446;&#20013;&#12290;&#39318;&#20808;&#65292;&#25214;&#21040;&#20320;&#30340;Laravel&#24212;&#29992;&#30340;&#36335;&#24452;&#65292;&#36890;&#24120;&#26159;<code>vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Console\/Kernel.php<\/code>&#12290;<\/p>\n<pre><code class=\"language-javascript\">import { Application } from 'laravel-mix';\n\n\/\/ Create an instance of your application.\nconst app = new Application();\n\napp.load(); \/\/ Load the Laravel framework into your project.\n\n\/\/ Now, you can use the `app` object to access services and routes in your Next.js application.<\/code><\/pre>\n<p>&#25509;&#19979;&#26469;&#65292;&#20320;&#38656;&#35201;&#23558;&#20320;&#30340;&#25511;&#21046;&#22120;&#25991;&#20214;&#22797;&#21046;&#21040;Next.js&#39033;&#30446;&#20013;&#12290;&#20551;&#35774;&#20320;&#30340;&#25511;&#21046;&#22120;&#20301;&#20110;<code>resources\/views\/layouts\/app.blade.php<\/code>&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;&#20197;&#19979;&#26041;&#24335;&#24341;&#20837;&#23427;&#65306;<\/p>\n<pre><code class=\"language-javascript\">import AppController from 'path\/to\/AppController';\nimport AppLayout from 'path\/to\/AppLayout';\n\nexport default function AppLayout({ children }) {\n  return (\n    &lt;AppLayout&gt;\n      {children}\n    &lt;\/AppLayout&gt;\n  );\n}\n\nexport const getStaticProps = async () =&gt; ({\n  props: {},\n});<\/code><\/pre>\n<p>&#27880;&#24847;&#65306;&#36825;&#37324;&#30340;<code>'path\/to\/'<\/code>&#24212;&#26367;&#25442;&#20026;&#23454;&#38469;&#36335;&#24452;&#12290;<\/p>\n<h3>&#27493;&#39588;6: &#26356;&#26032;Next.js&#39033;&#30446;&#30340;&#36335;&#30001;&#21644;&#38745;&#24577;&#25991;&#20214;&#22788;&#29702;<\/h3>\n<p>&#26368;&#21518;&#65292;&#20320;&#38656;&#35201;&#26356;&#26032;&#20320;&#30340;Next.js&#39033;&#30446;&#30340;&#36335;&#30001;&#21644;&#38745;&#24577;&#25991;&#20214;&#22788;&#29702;&#12290;&#36890;&#24120;&#65292;&#20320;&#20250;&#22312;<code>pages\/_document.js<\/code>&#20013;&#23450;&#20041;&#40664;&#35748;&#39029;&#38754;&#65292;&#22914;&#19979;&#25152;&#31034;&#65306;<\/p>\n<pre><code class=\"language-javascript\">import Layout from '..\/components\/Layout';\n\nfunction MyApp({ Component, pageProps }) {\n  return (\n    &lt;Layout&gt;\n      &lt;Component {...pageProps} \/&gt;\n    &lt;\/Layout&gt;\n  );\n}\n\nexport default MyApp;<\/code><\/pre>\n<p>&#36825;&#20010;&#20363;&#23376;&#23450;&#20041;&#20102;&#19968;&#20010;&#29992;&#20110;&#28210;&#26579;&#20219;&#20309;&#32452;&#20214;&#30340;&#40664;&#35748;&#39029;&#31614;&#24067;&#23616;&#12290;&#20320;&#38656;&#35201;&#26681;&#25454;&#33258;&#24049;&#30340;&#38656;&#27714;&#20462;&#25913;&#27492;&#37096;&#20998;&#12290;<\/p>\n<p>&#23436;&#25104;&#20197;&#19978;&#27493;&#39588;&#21518;&#65292;&#20320;&#30340;Next.js&#39033;&#30446;&#24212;&#35813;&#24050;&#25104;&#21151;&#38598;&#25104;&#21040;Laravel&#29615;&#22659;&#20013;&#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;&#23558;Next.js&#19982;Laravel&#38598;&#25104;&#65306;&#23454;&#29992;&#25351;&#21335; Next.js&#21644;Larave..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-835","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\/835","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=835"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=835"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=835"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=835"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}