{"id":833,"date":"2025-06-12T00:46:04","date_gmt":"2025-06-11T16:46:04","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/833.html"},"modified":"2025-06-12T00:46:04","modified_gmt":"2025-06-11T16:46:04","slug":"%e5%a6%82%e4%bd%95%e5%b0%86react%e4%b8%8elaravel%e7%bb%93%e5%90%88%e4%bd%bf%e7%94%a8-%e5%b0%86%e5%89%8d%e7%ab%af%e4%b8%8ephp%e5%90%8e%e7%ab%af%e9%9b%86%e6%88%90","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/833.html","title":{"rendered":"\u5982\u4f55\u5c06React\u4e0eLaravel\u7ed3\u5408\u4f7f\u7528\u2013\u5c06\u524d\u7aef\u4e0ePHP\u540e\u7aef\u96c6\u6210"},"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>&#23558;React&#19982;Laravel&#32467;&#21512;&#20351;&#29992;&#26159;&#19968;&#31181;&#27969;&#34892;&#30340;&#24320;&#21457;&#27169;&#24335;&#65292;&#23427;&#20801;&#35768;&#20320;&#22312;Web&#24212;&#29992;&#31243;&#24207;&#30340;&#21069;&#31471;&#21644;&#21518;&#31471;&#20043;&#38388;&#26080;&#32541;&#22320;&#36827;&#34892;&#20132;&#20114;&#12290;&#20197;&#19979;&#26159;&#22914;&#20309;&#23558;React&#19982;Laravel&#32467;&#21512;&#20351;&#29992;&#30340;&#27493;&#39588;&#65306;<\/p>\n<h3>1. &#21019;&#24314;&#19968;&#20010;&#26032;&#30340;React&#39033;&#30446;<\/h3>\n<p>&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;React&#39033;&#30446;&#12290;&#20320;&#21487;&#20197;&#20351;&#29992;Create React App&#65288;CRA&#65289;&#26469;&#24555;&#36895;&#35774;&#32622;&#36825;&#20010;&#39033;&#30446;&#12290;<\/p>\n<pre><code class=\"language-bash\">npx create-react-app my-laravel-app\ncd my-laravel-app<\/code><\/pre>\n<h3>2. &#37197;&#32622;React&#39033;&#30446;&#20197;&#25903;&#25345;Node.js<\/h3>\n<p>&#20026;&#20102;&#20351;React&#33021;&#22815;&#19982;Node.js&#19968;&#36215;&#24037;&#20316;&#65292;&#20320;&#38656;&#35201;&#23433;&#35013;&#19968;&#20123;&#24517;&#35201;&#30340;&#20381;&#36182;&#39033;&#12290;<\/p>\n<pre><code class=\"language-bash\">npm install react-dom@latest<\/code><\/pre>\n<h3>3. &#23558;React&#39033;&#30446;&#25171;&#21253;&#25104;JavaScript&#25991;&#20214;<\/h3>\n<p>&#20026;&#20102;&#23558;React&#39033;&#30446;&#25171;&#21253;&#25104;JavaScript&#25991;&#20214;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;Webpack&#12290;&#20320;&#21487;&#20197;&#20351;&#29992;Create React App&#25552;&#20379;&#30340;<code>build<\/code>&#33050;&#26412;&#26469;&#29983;&#25104;&#36825;&#20123;&#25991;&#20214;&#12290;<\/p>\n<pre><code class=\"language-bash\">npm run build<\/code><\/pre>\n<p>&#36825;&#23558;&#22312;<code>build<\/code>&#30446;&#24405;&#19979;&#29983;&#25104;&#19968;&#20010;JavaScript&#25991;&#20214;&#65292;&#20363;&#22914;<code>index.html<\/code>&#21644;<code>main.js<\/code>&#12290;<\/p>\n<h3>4. &#22312;Laravel&#20013;&#24341;&#20837;React<\/h3>\n<p>&#25509;&#19979;&#26469;&#65292;&#20320;&#38656;&#35201;&#22312;Laravel&#20013;&#24341;&#20837;&#36825;&#20123;React&#25991;&#20214;&#12290;&#20320;&#21487;&#20197;&#36890;&#36807;&#23558;&#23427;&#20204;&#25918;&#22312;&#20844;&#20849;&#30446;&#24405;&#19979;&#30340;<code>js<\/code>&#25991;&#20214;&#22841;&#20013;&#26469;&#23454;&#29616;&#36825;&#19968;&#28857;&#12290;<\/p>\n<h3>5. &#21019;&#24314;&#36335;&#30001;<\/h3>\n<p>&#22312;Laravel&#20013;&#65292;&#20320;&#38656;&#35201;&#21019;&#24314;&#19968;&#20010;&#36335;&#30001;&#26469;&#22788;&#29702;React&#24212;&#29992;&#30340;&#35831;&#27714;&#12290;<\/p>\n<pre><code class=\"language-php\">\/\/ routes\/web.php\nuse IlluminateSupportFacadesRoute;\n\nRoute::get('\/react', function () {\n    return view('welcome');\n});<\/code><\/pre>\n<h3>6. &#21019;&#24314;&#35270;&#22270;<\/h3>\n<p>&#22312;Laravel&#20013;&#65292;&#20320;&#38656;&#35201;&#21019;&#24314;&#19968;&#20010;&#35270;&#22270;&#26469;&#28210;&#26579;React&#24212;&#29992;&#12290;<\/p>\n<pre><code class=\"language-html\">&lt;!-- resources\/views\/welcome.blade.php --&gt;\n&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;Laravel with React&lt;\/title&gt;\n    &lt;link rel=\"stylesheet\" href=\"{{ asset('css\/app.css') }}\"&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;div id=\"root\"&gt;&lt;\/div&gt;\n\n    &lt;!-- &#24341;&#20837;React&#21644;ReactDOM --&gt;\n    &lt;script src=\"{{ asset('js\/react.development.js') }}\"&gt;&lt;\/script&gt;\n    &lt;script src=\"{{ asset('js\/react-dom.development.js') }}\"&gt;&lt;\/script&gt;\n\n    &lt;!-- &#24341;&#20837;React&#32452;&#20214; --&gt;\n    &lt;script type=\"module\" src=\"{{ asset('js\/MyComponent.js') }}\"&gt;&lt;\/script&gt;\n\n    &lt;script&gt;\n        \/\/ &#21021;&#22987;&#21270;React&#24212;&#29992;\n        ReactDOM.render(&lt;App \/&gt;, document.getElementById('root'));\n    &lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<h3>7. &#21019;&#24314;React&#32452;&#20214;<\/h3>\n<p>&#26368;&#21518;&#65292;&#20320;&#38656;&#35201;&#21019;&#24314;&#19968;&#20010;React&#32452;&#20214;&#26469;&#26174;&#31034;&#25968;&#25454;&#12290;<\/p>\n<pre><code class=\"language-jsx\">\/\/ resources\/js\/MyComponent.js\nimport React from 'react';\n\nconst MyComponent = () =&gt; {\n    const data = [\n        { name: 'John Doe', age: 30 },\n        { name: 'Jane Smith', age: 25 }\n    ];\n\n    return (\n        &lt;div&gt;\n            &lt;h1&gt;React Components in Laravel&lt;\/h1&gt;\n            &lt;ul&gt;\n                {data.map(item =&gt; (\n                    &lt;li key={item.name}&gt;{item.name} - {item.age}&lt;\/li&gt;\n                ))}\n            &lt;\/ul&gt;\n        &lt;\/div&gt;\n    );\n};\n\nexport default MyComponent;<\/code><\/pre>\n<h3>&#24635;&#32467;<\/h3>\n<p>&#36890;&#36807;&#20197;&#19978;&#27493;&#39588;&#65292;&#20320;&#24050;&#32463;&#25104;&#21151;&#22320;&#23558;React&#19982;Laravel&#32467;&#21512;&#20351;&#29992;&#65292;&#24182;&#22312;Laravel&#20013;&#23454;&#29616;&#20102;React&#30340;&#24212;&#29992;&#12290;&#36825;&#26679;&#65292;&#20320;&#21487;&#20197;&#22312;&#21069;&#21518;&#31471;&#20043;&#38388;&#26080;&#32541;&#22320;&#36827;&#34892;&#20132;&#20114;&#65292;&#25552;&#39640;&#24320;&#21457;&#25928;&#29575;&#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>React &#26159;&#19968;&#20010;&#24378;&#22823;&#30340; JavaScript &#24211;&#65292;&#29992;&#20110;&#26500;&#24314;&#29992;&#25143;&#30028;&#38754;&#65307;&#32780; Laravel &#26159;&#19968;&#20010;&#21151;&#33021;&#24378;&#22823;&#19988;&#25104;&#29087;&#30340; PHP &#26694;&#26550;&#65292;&#29992;&#20110;&#24320;&#21457;&#26381;&#21153;&#22120;&#31471;&#24212;&#29992;&#12290;&#23558;&#36825;&#20004;&#20010;&#31995;&#32479;&#32467;&#21512;&#36215;&#26469;&#21487;&#20197;&#21019;&#24314;&#19968;&#20010;&#21160;&#24577;&#39640;&#25928;&#30340;&#19968;&#31449;&#24335; Web &#24212;&#29992;&#31243;&#24207;&#12290;&#22312;&#26412;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23558;&#25351;&#23548;&#24744;&#22914;&#20309;&#23558;&#24744;&#30340; React &#21069;&#31471;&#19982; Laravel PHP &#21518;&#31471;&#38598;&#25104;&#22312;&#19968;&#36215;&#12290;<\/p><p>&#20808;&#20915;&#26465;&#20214;<\/p><p>&#20316;&#26354;&#23478;&#24050;&#23433;&#35013; Composer &#21644; npm\/yarn&#12290;<\/p><p>Laravel&#21644;React&#29615;&#22659;&#30340;&#35774;&#32622;<\/p><p>&#22522;&#26412;&#30340;PHP&#21644;JavaScript&#30693;&#35782;&#26159;&#38750;&#24120;&#37325;&#35201;&#30340;&#12290;<\/p><h2>&#27493;&#39588;&#35828;&#26126;<\/h2><h3>&#27493;&#39588;1&#65306;&#35774;&#32622;Laravel<\/h3><pre><code>composer create-project --prefer-dist laravel\/laravel laravel-react-integration<\/code><\/pre><p>&#36827;&#20837;&#39033;&#30446;&#30340;&#30446;&#24405;&#65306;<\/p><pre><code>cd laravel-react-integration<\/code><\/pre><h3>&#27493;&#39588;2&#65306;&#35774;&#32622;React<\/h3><p>&#22312;&#39033;&#30446;&#20013;&#28155;&#21152; React &#20351;&#29992; Laravel Mix&#65306;<\/p><pre><code>npm install react react-dom\nnpm install laravel-mix@^6.0.6<\/code><\/pre><p>&#29616;&#22312;&#37197;&#32622;webpack.mix.js&#65306;<\/p><pre><code>const mix = require('laravel-mix');\nmix.js('resources\/js\/app.js', 'public\/js')\n    .react()\n    .sass('resources\/sass\/app.scss', 'public\/css');<\/code><\/pre><h3>&#27493;&#39588;3&#65306;&#21019;&#24314;React&#32452;&#20214;<\/h3><p>&#21019;&#24314;&#19968;&#20010;&#32452;&#20214;&#12290;<code>resources\/js\/components<\/code>&#23545;&#19981;&#36215;&#65292;&#25105;&#19981;&#22826;&#26126;&#30333;&#24744;&#30340;&#24847;&#24605;&#65292;&#35831;&#24744;&#37325;&#26032;&#25551;&#36848;&#19968;&#19979;&#12290;<\/p><pre><code>npm install -D babel-plugin-syntax-dynamic-import<\/code><\/pre><p>&#32534;&#36753;&#20320;&#30340;&#20869;&#23481;&#12290;<code>resources\/js\/app.js<\/code>&#21253;&#25324;&#32452;&#20214;&#65306;<\/p><pre><code>import React from 'react';\nimport ReactDOM from 'react-dom';\nfunction Example() {\n    return (\n        &lt;div className=\"App\"&gt;\n            &lt;h1&gt;Hello, React!&lt;\/h1&gt;\n        &lt;\/div&gt;\n    );\n}\nif (document.getElementById('app')) {\n    ReactDOM.render(&lt;Example \/&gt;, document.getElementById('app'));\n}<\/code><\/pre><h3>&#27493;&#39588; 4&#65306;&#23558; React &#38598;&#25104;&#21040; Laravel &#36335;&#30001;&#20013;<\/h3><p>&#21019;&#24314;&#19968;&#20010;&#31471;&#28857;&#12290;<code>routes\/web.php<\/code>&#65306;<\/p><pre><code>Route::view('\/', 'app');<\/code><\/pre><p>&#21019;&#24314;&#19968;&#20010;&#35270;&#22270;&#12290;<code>resources\/views\/app.blade.php<\/code>And include the React component:<\/p><pre><code>&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;React with Laravel&lt;\/title&gt;\n    &lt;link rel=\"stylesheet\" href=\"{{ mix('css\/app.css') }}\"&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;div id=\"app\"&gt;&lt;\/div&gt;\n    &lt;script src=\"{{ mix('js\/app.js') }}\"&gt;&lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre><h3>&#27493;&#39588; 5&#65306;&#20351;&#29992; API &#36830;&#25509;&#21040;&#21518;&#31471;<\/h3><p>&#21019;&#24314;&#19968;&#20010;API&#36335;&#30001;<code>routes\/api.php<\/code>&#19982;&#20043;&#30456;&#23545;&#24212;&#30340;&#25511;&#21046;&#22120;&#65306;<\/p><pre><code>Route::get('\/data', 'ApiController@index');<\/code><\/pre><p>&#22312;&#24744;&#30340;React&#32452;&#20214;&#20013;&#65292;&#35831;&#27714;&#25968;&#25454;&#65306;<\/p><pre><code>useEffect(() =&gt; {\n    fetch('\/api\/data')\n        .then(response =&gt; response.json())\n        .then(data =&gt; {\n            \/\/ Handle data\n        });\n}, []);<\/code><\/pre><h3>&#27493;&#39588; 6&#65306;&#26500;&#24314;&#21644;&#36816;&#34892;&#24212;&#29992;&#31243;&#24207;<\/h3><p>&#32534;&#35793;&#24744;&#30340;JavaScript&#21644;&#26679;&#24335;&#34920;&#20351;&#29992;Laravel Mix&#65306;<\/p><pre><code>npm run dev<\/code><\/pre><p>&#24320;&#22987;&#21551;&#21160;Laravel&#24212;&#29992;&#65306;<\/p><pre><code>php artisan serve<\/code><\/pre><h2>&#32467;&#35770;&#12290;<\/h2><p>&#36890;&#36807;&#23558;React&#21069;&#31471;&#19982;Laravel&#21518;&#31471;&#30456;&#32467;&#21512;&#65292;&#20320;&#24050;&#32463;&#20026;&#19968;&#20010;&#39640;&#24230;&#20114;&#21160;&#21644;&#24378;&#22823;&#30340;Web&#24212;&#29992;&#31243;&#24207;&#22880;&#23450;&#20102;&#22522;&#30784;&#12290;&#32487;&#32493;&#23454;&#39564;&#21644;&#25913;&#36827;&#36825;&#20010;&#36807;&#31243;&#65292;&#38543;&#30528;&#24212;&#29992;&#30340;&#25193;&#23637;&#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>React &#21644; Laravel &#26159;&#20004;&#31181;&#19981;&#21516;&#30340;&#25216;&#26415;&#26632;&#65292;&#20998;&#21035;&#29992;&#20110;&#26500;&#24314;&#21069;&#31471;&#21644;&#21518;&#31471;&#24212;&#29992;&#12290;&#34429;&#28982;&#23427;&#20204;&#30340;&#21151;&#33021;&#33539;&#22260;&#26377;&#25152;&#19981;&#21516;&#65292;&#20294;&#21487;&#20197;&#32467;&#21512;&#36215;&#26469;&#23454;&#29616;&#26356;&#22797;&#26434;&#30340;&#24212;&#29992;&#12290;<\/p>\n<h3>&#20351;&#29992;React&#21644;Laravel&#30340;&#27493;&#39588;<\/h3>\n<ol>\n<li>\n<p><strong>&#23433;&#35013;&#20381;&#36182;<\/strong>&#65306;<\/p>\n<ul>\n<li>&#22312;&#39033;&#30446;&#30446;&#24405;&#19979;&#21019;&#24314; <code>node_modules<\/code> &#25991;&#20214;&#22841;&#12290;<\/li>\n<li>\n<p>&#23433;&#35013; Laravel &#26381;&#21153;&#22120; (&#22914;&#26524;&#20320;&#36824;&#27809;&#26377;&#23433;&#35013;)&#65306;&#36816;&#34892;&#20197;&#19979;&#21629;&#20196;&#65306;<\/p>\n<pre><code class=\"language-bash\">npm install --save laravel<\/code><\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>&#35774;&#32622;&#29615;&#22659;&#21464;&#37327;<\/strong>&#65306;<\/p>\n<ul>\n<li>&#21019;&#24314; <code>.env<\/code> &#25991;&#20214;&#65288;&#22914;&#26524;&#23578;&#26410;&#23384;&#22312;&#65289;&#65292;&#24182;&#28155;&#21152;&#20197;&#19979;&#37197;&#32622;&#39033;&#65306;\n<pre><code class=\"language-sh\">APP_NAME=YourAppName\nAPP_ENV=local\nAPP_DEBUG=true\nAPP_URL=http:\/\/localhost:8000\nAPP_KEY=your_secret_key<\/code><\/pre><\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>&#35774;&#32622;&#36335;&#30001;&#21644;&#25511;&#21046;&#22120;<\/strong>&#65306;<\/p>\n<ul>\n<li>&#21019;&#24314;&#19968;&#20010;&#26032;&#30340; Laravel &#36335;&#30001;&#25991;&#20214;&#65288;&#20363;&#22914; <code>routes\/web.php<\/code>&#65289;&#24182;&#23450;&#20041;&#25511;&#21046;&#22120;&#21644;&#36335;&#30001;&#12290;\n<pre><code class=\"language-php\">Route::get('\/', function () {\nreturn view('welcome');\n});<\/code><\/pre><\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>&#37197;&#32622;&#25968;&#25454;&#24211;&#36830;&#25509;<\/strong>&#65306;<\/p>\n<ul>\n<li>&#22312; <code>config\/app.php<\/code> &#20013;&#26356;&#25913; <code>$database<\/code> &#37197;&#32622;&#20026; <code>laravel\/database<\/code>.\n<pre><code class=\"language-php\">'database' =&gt; [\n'driver' =&gt; env('DB_CONNECTION'),\n'host' =&gt; env('DB_HOST', '127.0.0.1'),\n'port' =&gt; env('DB_PORT', '5432'),\n'options' =&gt; [\n   '--charset=utf8',\n   '--collation=utf8_unicode_ci'\n],\n'prefix' =&gt; '',\n];<\/code><\/pre><\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>&#21019;&#24314; API &#27169;&#22359;<\/strong>&#65306;<\/p>\n<ul>\n<li>&#22312; <code>app\/Http\/Controllers<\/code> &#30446;&#24405;&#19979;&#21019;&#24314;&#19968;&#20010;&#21517;&#20026; <code>api.php<\/code> &#30340;&#25991;&#20214;&#65292;&#24182;&#32534;&#20889;&#30456;&#24212;&#30340;&#25511;&#21046;&#22120;&#31867;&#12290;\n<pre><code class=\"language-php\">\n&lt;?php<\/code><\/pre><\/li>\n<\/ul>\n<p>namespace AppHttpControllers;<\/p>\n<p>use IlluminateHttpRequest;\nuse AppModelsUser;<\/p>\n<p>class UserController extends Controller\n{\npublic function store(Request $request)\n{\nUser::create($request-&gt;all());\nreturn response()-&gt;json([&#8216;message&#8217; =&gt; &#8216;User created successfully&#8217;], 201);\n}\n}<\/p>\n<pre><code><\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#35774;&#32622;&#36335;&#30001;<\/strong>&#65306;<\/p>\n<ul>\n<li>&#20462;&#25913; <code>routes\/api.php<\/code> &#25991;&#20214;&#65292;&#28155;&#21152; API &#35843;&#29992;&#36335;&#24452;&#12290;\n<pre><code class=\"language-php\">Route::post('\/users', 'UserController@store')-&gt;name('users.store');<\/code><\/pre><\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>&#21019;&#24314; API &#35268;&#21017;<\/strong>&#65306;<\/p>\n<ul>\n<li>\n<p>&#22312; <code>app\/Http\/Kernel.php<\/code> &#25991;&#20214;&#20013;&#30340; <code>handle()<\/code> &#26041;&#27861;&#20013;&#21551;&#29992; API &#35268;&#21017;&#12290;<\/p>\n<pre><code class=\"language-php\">protected $middlewareGroups = [\n'web' =&gt; [\n   AppHttpMiddlewareTrustProxies::class,\n   FruitcakeCorsHandleCORS::class,\n   IlluminateFoundationHttpMiddlewareValidatePostSize::class,\n   AppHttpMiddlewareTrimStrings::class,\n   IlluminateFoundationHttpMiddlewareConvertEmptyStringsToNull::class,\n],\n\n'api' =&gt; [\n   AppHttpMiddlewareCheckForMaintenanceMode::class,\n   IlluminateRoutingMiddlewareSubstituteBindings::class,\n],\n];<\/code><\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>&#37096;&#32626;&#21040; Laravel Server<\/strong>&#65306;<\/p>\n<ul>\n<li>&#30830;&#20445;&#22312; Laravel &#30340;&#26381;&#21153;&#22120;&#19978;&#21551;&#21160;&#20102;&#27491;&#30830;&#30340;&#30417;&#21548;&#31471;&#21475;&#12290;<\/li>\n<li>&#36816;&#34892; Laravel &#26381;&#21153;&#22120;&#12290;<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>&#27979;&#35797; API<\/strong>&#65306;<\/p>\n<ul>\n<li>&#20351;&#29992; Postman &#25110;&#32773;&#20854;&#20182; API &#27979;&#35797;&#24037;&#20855;&#26469;&#27979;&#35797;&#20320;&#30340; API&#12290;<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<h4>&#29992;&#25143;&#27169;&#22411;<\/h4>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppModels;\n\nuse IlluminateDatabaseEloquentFactoriesHasFactory;\nuse IlluminateDatabaseEloquentModel;\n\nclass User extends Model\n{\n    use HasFactory;\n\n    \/**\n     * The attributes that are mass assignable.\n     *\n     * @var array&lt;int, string&gt;\n     *\/\n    protected $fillable = [\n        'username',\n        'email',\n        'password',\n    ];\n\n    \/**\n     * The attributes that should be hidden for serialization.\n     *\n     * @var array&lt;int, string&gt;\n     *\/\n    protected $hidden = [\n        'password',\n        'remember_token',\n    ];\n\n    \/**\n     * The attributes that should be cast.\n     *\n     * @var array&lt;string, string&gt;\n     *\/\n    protected $casts = [\n        'email_verified_at' =&gt; 'datetime',\n    ];\n}<\/code><\/pre>\n<p>&#36890;&#36807;&#20197;&#19978;&#27493;&#39588;&#65292;&#24744;&#21487;&#20197;&#22312; Laravel &#24212;&#29992;&#31243;&#24207;&#20013;&#20351;&#29992; React &#26550;&#26500;&#26469;&#26500;&#24314;&#21160;&#24577;&#32452;&#20214;&#21644;&#25968;&#25454;&#21487;&#35270;&#21270;&#65292;&#32780;&#26080;&#38656;&#23436;&#20840;&#20174;&#22836;&#24320;&#22987;&#26500;&#24314;&#23436;&#25972;&#30340;&#21069;&#21518;&#31471;&#26694;&#26550;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#23558;React&#19982;Laravel&#32467;&#21512;&#20351;&#29992;&#26159;&#19968;&#31181;&#27969;&#34892;&#30340;&#24320;&#21457;&#27169;..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-833","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\/833","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=833"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=833"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=833"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}