{"id":1342,"date":"2023-04-18T21:27:48","date_gmt":"2023-04-18T12:27:48","guid":{"rendered":"http:\/\/edu.ujhb.org\/?p=1342"},"modified":"2023-04-18T21:27:48","modified_gmt":"2023-04-18T12:27:48","slug":"laravel%e5%85%a5%e9%97%a8%ef%bc%88%e4%b8%ad%e6%96%87%e7%89%88%ef%bc%89","status":"publish","type":"post","link":"https:\/\/edu.ujhb.org\/?p=1342","title":{"rendered":"Laravel\u5165\u95e8\uff08\u4e2d\u6587\u7248\uff09"},"content":{"rendered":"\n<p>\u6211\u662f\u8981\u505aIT\u6559\u7a0b\u7684\u89c6\u9891\uff0c\u4f60\u80fd\u5426\u6839\u636e\u7f51\u7ad9\u7684\u5185\u5bb9\uff0c\u4e3a\u6211\u5b89\u6392\u89c6\u9891\u6559\u7a0b\u7684\u6587\u5b57\u5185\u5bb9\u3002\u6211\u4eec\u5148\u4eceLaravel\u6559\u7a0b\u5f00\u59cb\uff0c\u4f60\u5148\u4e3a\u6211\u5217\u51fa\u8981\u8bb2\u89e3\u7684\u5185\u5bb9\u4e00\u89c8\u3002<\/p>\n\n\n\n<p>\u5f53\u7136\u53ef\u4ee5\uff01\u4ee5\u4e0b\u662f\u4e00\u4e2a\u5173\u4e8eLaravel\u6559\u7a0b\u7684\u89c6\u9891\u5185\u5bb9\u63d0\u7eb2\u3002\u8fd9\u4e2a\u63d0\u7eb2\u5305\u542b\u4e86\u4e00\u4e9b\u4e3b\u8981\u7684\u6982\u5ff5\u548c\u529f\u80fd\uff0c\u4ee5\u4fbf\u60a8\u5728\u5236\u4f5c\u6559\u7a0b\u65f6\u8fdb\u884c\u8bb2\u89e3\u3002\u60a8\u53ef\u4ee5\u6839\u636e\u9700\u8981\u6dfb\u52a0\u6216\u5220\u9664\u67d0\u4e9b\u4e3b\u9898\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u8bfe\u7a0b\u7b80\u4ecb\u548cLaravel\u6846\u67b6\u6982\u8ff0\n<ul class=\"wp-block-list\">\n<li>Laravel\u6846\u67b6\u7684\u4f18\u52bf<\/li>\n\n\n\n<li>\u9002\u7528\u7684\u9879\u76ee\u7c7b\u578b<\/li>\n\n\n\n<li>\u8bfe\u7a0b\u76ee\u6807\u4e0e\u5927\u7eb2<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u73af\u5883\u642d\u5efa\u4e0e\u5b89\u88c5\n<ul class=\"wp-block-list\">\n<li>\u5b89\u88c5PHP\u3001Composer\u4e0eLaravel<\/li>\n\n\n\n<li>\u521b\u5efaLaravel\u9879\u76ee<\/li>\n\n\n\n<li>\u914d\u7f6e\u5f00\u53d1\u73af\u5883<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Laravel\u76ee\u5f55\u7ed3\u6784\u4e0eMVC\u67b6\u6784\n<ul class=\"wp-block-list\">\n<li>\u76ee\u5f55\u7ed3\u6784\u6982\u8ff0<\/li>\n\n\n\n<li>MVC\u67b6\u6784\u53ca\u5176\u5728Laravel\u4e2d\u7684\u5b9e\u73b0<\/li>\n\n\n\n<li>\u8bf7\u6c42\u751f\u547d\u5468\u671f<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u8def\u7531\u548c\u63a7\u5236\u5668\n<ul class=\"wp-block-list\">\n<li>\u8def\u7531\u7684\u57fa\u672c\u6982\u5ff5\u4e0e\u5b9a\u4e49<\/li>\n\n\n\n<li>\u521b\u5efa\u63a7\u5236\u5668<\/li>\n\n\n\n<li>\u63a7\u5236\u5668\u4e0e\u8def\u7531\u4e4b\u95f4\u7684\u5173\u8054<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u89c6\u56fe\u4e0e\u6a21\u677f\u5f15\u64ce\n<ul class=\"wp-block-list\">\n<li>\u89c6\u56fe\u7684\u57fa\u672c\u6982\u5ff5\u4e0e\u521b\u5efa<\/li>\n\n\n\n<li>Blade\u6a21\u677f\u5f15\u64ce<\/li>\n\n\n\n<li>\u6a21\u677f\u7ee7\u627f\u4e0e\u7ec4\u4ef6\u5316<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u6570\u636e\u5e93\u4e0eEloquent ORM\n<ul class=\"wp-block-list\">\n<li>\u6570\u636e\u5e93\u914d\u7f6e\u4e0e\u8fde\u63a5<\/li>\n\n\n\n<li>Eloquent ORM\u6982\u8ff0<\/li>\n\n\n\n<li>\u521b\u5efa\u6a21\u578b\u4e0e\u8fc1\u79fb\u6587\u4ef6<\/li>\n\n\n\n<li>Eloquent\u5173\u7cfb<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u8868\u5355\u4e0e\u6570\u636e\u9a8c\u8bc1\n<ul class=\"wp-block-list\">\n<li>\u521b\u5efa\u8868\u5355<\/li>\n\n\n\n<li>\u63a5\u6536\u8868\u5355\u6570\u636e\u4e0e\u5904\u7406<\/li>\n\n\n\n<li>\u6570\u636e\u9a8c\u8bc1\u4e0e\u9519\u8bef\u5904\u7406<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u8ba4\u8bc1\u4e0e\u6388\u6743\n<ul class=\"wp-block-list\">\n<li>Laravel\u5185\u7f6e\u8ba4\u8bc1\u7cfb\u7edf<\/li>\n\n\n\n<li>\u7528\u6237\u6ce8\u518c\u4e0e\u767b\u5f55<\/li>\n\n\n\n<li>\u7528\u6237\u6388\u6743\u4e0e\u7b56\u7565<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u4efb\u52a1\u8c03\u5ea6\u4e0e\u961f\u5217\n<ul class=\"wp-block-list\">\n<li>Laravel\u4efb\u52a1\u8c03\u5ea6\u6982\u8ff0<\/li>\n\n\n\n<li>\u961f\u5217\u7684\u57fa\u672c\u6982\u5ff5\u4e0e\u914d\u7f6e<\/li>\n\n\n\n<li>\u521b\u5efa\u4e0e\u8fd0\u884c\u961f\u5217\u4efb\u52a1<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u6d4b\u8bd5\u4e0e\u90e8\u7f72\n<ul class=\"wp-block-list\">\n<li>\u7f16\u5199\u6d4b\u8bd5\u7528\u4f8b<\/li>\n\n\n\n<li>\u8fd0\u884c\u6d4b\u8bd5\u4e0e\u68c0\u67e5\u7ed3\u679c<\/li>\n\n\n\n<li>\u90e8\u7f72Laravel\u9879\u76ee\u5230\u751f\u4ea7\u73af\u5883<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Laravel\u7684\u9ad8\u7ea7\u7279\u6027\u4e0e\u5b9e\u7528\u6280\u5de7\n<ul class=\"wp-block-list\">\n<li>\u4f9d\u8d56\u6ce8\u5165\u4e0e\u670d\u52a1\u5bb9\u5668<\/li>\n\n\n\n<li>\u4e8b\u4ef6\u4e0e\u76d1\u542c\u5668<\/li>\n\n\n\n<li>\u7f13\u5b58\u4e0e\u6027\u80fd\u4f18\u5316<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u8bfe\u7a0b\u603b\u7ed3\u4e0e\u672a\u6765\u5b66\u4e60\u8def\u5f84\n<ul class=\"wp-block-list\">\n<li>\u672c\u8bfe\u7a0b\u6240\u5b66\u5185\u5bb9\u56de\u987e<\/li>\n\n\n\n<li>\u5efa\u8bae\u7684\u540e\u7eed\u5b66\u4e60\u8d44\u6e90\u4e0e\u8fdb\u9636\u8bfe\u7a0b<\/li>\n\n\n\n<li>Laravel\u793e\u533a\u4e0e\u751f\u6001<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>\u8fd9\u4e2a\u63d0\u7eb2\u5e94\u8be5\u80fd\u4e3a\u60a8\u63d0\u4f9b\u4e00\u4e2a\u5173\u4e8eLaravel\u6559\u7a0b\u7684\u5168\u9762\u5185\u5bb9\u6982\u89c8\u3002\u5728\u5236\u4f5c\u89c6\u9891\u65f6\uff0c\u8bf7\u786e\u4fdd\u6839\u636e\u60a8\u7684\u53d7\u4f17\u8fdb\u884c\u9002\u5f53\u7684\u8c03\u6574\u548c\u4f18\u5316\u3002\u795d\u60a8\u5236\u4f5c\u6210\u529f\uff01<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91caLaravel\u6846\u67b6\u7684\u4f18\u52bf<\/p>\n\n\n\n<p>The previous model used in this conversation is unavailable. We&#8217;ve switched you to the latest default model<\/p>\n\n\n\n<p>Laravel\u662f\u4e00\u4e2a\u57fa\u4e8ePHP\u7684\u5f00\u6e90Web\u5e94\u7528\u6846\u67b6\uff0c\u5b83\u63d0\u4f9b\u4e86\u8bb8\u591a\u4f18\u52bf\u548c\u529f\u80fd\uff0c\u4f7f\u5f97\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u66f4\u52a0\u9ad8\u6548\u3001\u5feb\u901f\u5730\u6784\u5efa\u51fa\u4f18\u8d28\u7684Web\u5e94\u7528\u3002\u4ee5\u4e0b\u662fLaravel\u6846\u67b6\u7684\u4e3b\u8981\u4f18\u52bf\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u6e05\u6670\u7b80\u6d01\u7684\u8bed\u6cd5\uff1aLaravel\u4f7f\u7528\u7b80\u6d01\u3001\u76f4\u89c2\u7684\u8bed\u6cd5\uff0c\u4f7f\u5f97\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u66f4\u5feb\u5730\u7f16\u5199\u4ee3\u7801\u3002\u4f8b\u5982\uff0c\u5b83\u4f7f\u7528\u6613\u4e8e\u7406\u89e3\u7684\u8def\u7531\u5668\u548c\u63a7\u5236\u5668\u7ed3\u6784\u6765\u7ec4\u7ec7\u4ee3\u7801\uff0c\u5e76\u63d0\u4f9b\u4e86Blade\u6a21\u677f\u5f15\u64ce\uff0c\u4f7f\u5f97\u524d\u7aef\u5f00\u53d1\u66f4\u52a0\u8f7b\u677e\u3002<\/li>\n\n\n\n<li>\u4f18\u96c5\u7684ORM\uff1aLaravel\u63d0\u4f9b\u4e86\u4e00\u4e2a\u5f3a\u5927\u7684ORM\uff08\u5bf9\u8c61\u5173\u7cfb\u6620\u5c04\uff09\u5de5\u5177\uff0c\u79f0\u4e3aEloquent\u3002Eloquent\u7b80\u5316\u4e86\u6570\u636e\u5e93\u67e5\u8be2\u548c\u5173\u7cfb\u7ba1\u7406\u7684\u8fc7\u7a0b\uff0c\u4f7f\u5f97\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u66f4\u8f7b\u677e\u5730\u4e0e\u6570\u636e\u5e93\u8fdb\u884c\u4ea4\u4e92\u3002<\/li>\n\n\n\n<li>\u5feb\u901f\u7684\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\uff1aLaravel\u6846\u67b6\u901a\u8fc7\u63d0\u4f9b\u4e00\u7cfb\u5217\u5185\u7f6e\u529f\u80fd\uff08\u5982\u8ba4\u8bc1\u3001\u6388\u6743\u3001\u7f13\u5b58\u7b49\uff09\uff0c\u4ee5\u53ca\u826f\u597d\u7684\u8def\u7531\u548c\u63a7\u5236\u5668\u7ed3\u6784\uff0c\u4f7f\u5f97\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u66f4\u5feb\u901f\u5730\u6784\u5efa\u51fa\u9ad8\u8d28\u91cf\u7684Web\u5e94\u7528\u3002<\/li>\n\n\n\n<li>\u5f3a\u5927\u7684\u793e\u533a\u652f\u6301\uff1aLaravel\u662f\u4e00\u4e2a\u5f00\u6e90\u6846\u67b6\uff0c\u62e5\u6709\u5e9e\u5927\u7684\u5f00\u53d1\u8005\u793e\u533a\u548c\u751f\u6001\u7cfb\u7edf\u3002\u8fd9\u4f7f\u5f97\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u66f4\u8f7b\u677e\u5730\u5206\u4eab\u548c\u83b7\u53d6\u4ee3\u7801\u8d44\u6e90\uff0c\u89e3\u51b3\u95ee\u9898\uff0c\u540c\u65f6\u4e5f\u610f\u5473\u7740Laravel\u4f1a\u4e0d\u65ad\u66f4\u65b0\u548c\u6539\u8fdb\u3002<\/li>\n\n\n\n<li>\u5b89\u5168\u6027\uff1aLaravel\u6846\u67b6\u5185\u7f6e\u4e86\u591a\u4e2a\u5b89\u5168\u529f\u80fd\uff0c\u5982\u5bc6\u7801\u54c8\u5e0c\u3001CSRF\u4fdd\u62a4\u3001XSS\u9632\u5fa1\u7b49\uff0c\u4f7f\u5f97\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u66f4\u52a0\u5b89\u5168\u53ef\u9760\u3002<\/li>\n\n\n\n<li>\u53ef\u6269\u5c55\u6027\uff1aLaravel\u6846\u67b6\u63d0\u4f9b\u4e86\u4e30\u5bcc\u7684\u6269\u5c55\u548c\u63d2\u4ef6\uff0c\u5982\u5305\u7ba1\u7406\u5668Composer\u3001\u4efb\u52a1\u8c03\u5ea6\u5668\u3001\u961f\u5217\u7b49\uff0c\u53ef\u4ee5\u6ee1\u8db3\u4e0d\u540c\u5e94\u7528\u7a0b\u5e8f\u7684\u9700\u6c42\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u603b\u4e4b\uff0cLaravel\u6846\u67b6\u7684\u4f18\u52bf\u662f\u5b83\u63d0\u4f9b\u4e86\u4e00\u4e2a\u7b80\u5355\u3001\u5feb\u901f\u3001\u5b89\u5168\u3001\u53ef\u6269\u5c55\u7684\u89e3\u51b3\u65b9\u6848\uff0c\u4f7f\u5f97\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u66f4\u52a0\u4e13\u6ce8\u4e8e\u4e1a\u52a1\u903b\u8f91\u548c\u7528\u6237\u4f53\u9a8c\u7684\u5f00\u53d1\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91ca\u9002\u7528\u7684\u9879\u76ee\u7c7b\u578b<\/p>\n\n\n\n<p>Laravel\u6846\u67b6\u9002\u7528\u4e8e\u5404\u79cd\u89c4\u6a21\u7684Web\u5e94\u7528\u5f00\u53d1\u3002\u4ee5\u4e0b\u662fLaravel\u6846\u67b6\u9002\u7528\u7684\u4e00\u4e9b\u9879\u76ee\u7c7b\u578b\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>CMS\uff08\u5185\u5bb9\u7ba1\u7406\u7cfb\u7edf\uff09\uff1aLaravel\u6846\u67b6\u7684\u6e05\u6670\u7b80\u6d01\u7684\u8bed\u6cd5\u548c\u826f\u597d\u7684\u8def\u7531\u548c\u63a7\u5236\u5668\u7ed3\u6784\uff0c\u4f7f\u5f97\u5b83\u975e\u5e38\u9002\u5408\u5f00\u53d1\u5185\u5bb9\u7ba1\u7406\u7cfb\u7edf\u3002Laravel\u4e5f\u63d0\u4f9b\u4e86\u4e00\u4e9b\u5185\u7f6e\u7684\u529f\u80fd\uff0c\u5982\u6388\u6743\u3001\u8ba4\u8bc1\u3001\u7f13\u5b58\u7b49\uff0c\u53ef\u4ee5\u4f7f\u5f97CMS\u7684\u5f00\u53d1\u66f4\u52a0\u5feb\u901f\u3001\u9ad8\u6548\u548c\u53ef\u9760\u3002<\/li>\n\n\n\n<li>\u7535\u5546\u5e73\u53f0\uff1aLaravel\u6846\u67b6\u9002\u5408\u5f00\u53d1\u4e2d\u5c0f\u578b\u7684\u7535\u5546\u5e73\u53f0\uff0c\u63d0\u4f9b\u4e86\u4e00\u4e9b\u5185\u7f6e\u7684\u529f\u80fd\uff0c\u5982\u652f\u4ed8\u3001\u8ba2\u5355\u7ba1\u7406\u3001\u5e93\u5b58\u7ba1\u7406\u7b49\uff0c\u540c\u65f6\u4e5f\u652f\u6301\u8bb8\u591a\u6d41\u884c\u7684\u4ed8\u6b3e\u548c\u7269\u6d41API\u3002Laravel\u7684ORM\uff08Eloquent\uff09\u4e5f\u80fd\u591f\u8f7b\u677e\u5904\u7406\u5404\u79cd\u5546\u54c1\u548c\u7c7b\u522b\u5173\u7cfb\u7684\u590d\u6742\u6027\u3002<\/li>\n\n\n\n<li>\u793e\u4ea4\u7f51\u7edc\uff1aLaravel\u6846\u67b6\u63d0\u4f9b\u4e86\u5185\u7f6e\u7684\u8eab\u4efd\u9a8c\u8bc1\u548c\u6388\u6743\u7cfb\u7edf\uff0c\u4f7f\u5f97\u5f00\u53d1\u793e\u4ea4\u7f51\u7edc\u53d8\u5f97\u66f4\u52a0\u5bb9\u6613\u3002Laravel\u7684ORM\u4e5f\u53ef\u4ee5\u8f7b\u677e\u5904\u7406\u590d\u6742\u7684\u5173\u7cfb\u56fe\uff0c\u540c\u65f6\u4e5f\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u7684\u961f\u5217\u548c\u4efb\u52a1\u8c03\u5ea6\u5668\u6765\u5904\u7406\u5b9e\u65f6\u901a\u77e5\u548c\u90ae\u4ef6\u63a8\u9001\u7b49\u4efb\u52a1\u3002<\/li>\n\n\n\n<li>SaaS\u5e94\u7528\u7a0b\u5e8f\uff1aLaravel\u6846\u67b6\u63d0\u4f9b\u4e86\u826f\u597d\u7684\u6269\u5c55\u6027\u548c\u53ef\u5b9a\u5236\u6027\uff0c\u4f7f\u5f97\u5b83\u975e\u5e38\u9002\u5408\u5f00\u53d1SaaS\u5e94\u7528\u7a0b\u5e8f\u3002Laravel\u6846\u67b6\u5185\u7f6e\u7684\u961f\u5217\u548c\u4efb\u52a1\u8c03\u5ea6\u5668\u53ef\u4ee5\u5904\u7406\u5927\u91cf\u7684\u4efb\u52a1\u548c\u4e8b\u4ef6\uff0c\u540c\u65f6\u4e5f\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u7684\u7f13\u5b58\u7cfb\u7edf\u6765\u63d0\u9ad8\u6027\u80fd\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u603b\u4e4b\uff0cLaravel\u6846\u67b6\u9002\u7528\u4e8e\u5404\u79cdWeb\u5e94\u7528\u7a0b\u5e8f\u7684\u5f00\u53d1\uff0c\u5305\u62ec\u4e2d\u5c0f\u578bCMS\u3001\u7535\u5546\u5e73\u53f0\u3001\u793e\u4ea4\u7f51\u7edc\u548cSaaS\u5e94\u7528\u7a0b\u5e8f\u7b49\u3002\u65e0\u8bba\u662f\u521d\u521b\u4f01\u4e1a\u8fd8\u662f\u5927\u578b\u4f01\u4e1a\uff0c\u90fd\u53ef\u4ee5\u4f7f\u7528Laravel\u6846\u67b6\u6765\u6784\u5efa\u9ad8\u8d28\u91cf\u7684Web\u5e94\u7528\u7a0b\u5e8f\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91ca\u8bfe\u7a0b\u76ee\u6807\u4e0e\u5927\u7eb2<\/p>\n\n\n\n<p>\u8bfe\u7a0b\u76ee\u6807\u662f\u6307\u672c\u8bfe\u7a0b\u6240\u8981\u8fbe\u5230\u7684\u5b66\u4e60\u6210\u679c\u548c\u76ee\u6807\u3002\u8bfe\u7a0b\u5927\u7eb2\u5219\u662f\u6307\u672c\u8bfe\u7a0b\u6240\u5305\u542b\u7684\u6240\u6709\u5185\u5bb9\u3001\u4e3b\u9898\u548c\u5b50\u4e3b\u9898\u3002\u4ee5\u4e0b\u662fLaravel\u6559\u7a0b\u7684\u8bfe\u7a0b\u76ee\u6807\u4e0e\u5927\u7eb2\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u8bfe\u7a0b\u76ee\u6807\uff1a<\/li>\n<\/ol>\n\n\n\n<p>\u672c\u8bfe\u7a0b\u65e8\u5728\u901a\u8fc7Laravel\u6846\u67b6\u7684\u5b66\u4e60\uff0c\u4f7f\u5b66\u751f\u80fd\u591f\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u7406\u89e3Laravel\u6846\u67b6\u7684\u57fa\u672c\u6982\u5ff5\u548c\u4f18\u52bf\uff1b<\/li>\n\n\n\n<li>\u719f\u7ec3\u638c\u63e1Laravel\u6846\u67b6\u7684\u5404\u79cd\u6280\u672f\u548c\u529f\u80fd\uff1b<\/li>\n\n\n\n<li>\u80fd\u591f\u4f7f\u7528Laravel\u6846\u67b6\u5f00\u53d1\u9ad8\u8d28\u91cf\u7684Web\u5e94\u7528\u7a0b\u5e8f\uff1b<\/li>\n\n\n\n<li>\u7406\u89e3Laravel\u6846\u67b6\u7684\u6269\u5c55\u6027\u548c\u53ef\u5b9a\u5236\u6027\uff1b<\/li>\n\n\n\n<li>\u638c\u63e1\u6d4b\u8bd5\u3001\u90e8\u7f72\u548c\u7ef4\u62a4Laravel\u5e94\u7528\u7a0b\u5e8f\u7684\u65b9\u6cd5\u3002<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u8bfe\u7a0b\u5927\u7eb2\uff1a<\/li>\n<\/ol>\n\n\n\n<p>\u672c\u8bfe\u7a0b\u7684\u5927\u7eb2\u5982\u4e0b\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Laravel\u6846\u67b6\u6982\u8ff0\n<ul class=\"wp-block-list\">\n<li>\u4ec0\u4e48\u662fLaravel\u6846\u67b6<\/li>\n\n\n\n<li>Laravel\u6846\u67b6\u7684\u4f18\u52bf<\/li>\n\n\n\n<li>Laravel\u6846\u67b6\u7684\u7ec4\u4ef6\u548c\u67b6\u6784<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u5f00\u53d1\u73af\u5883\u642d\u5efa\u4e0e\u5b89\u88c5\n<ul class=\"wp-block-list\">\n<li>PHP\u548cComposer\u7684\u5b89\u88c5<\/li>\n\n\n\n<li>Laravel\u6846\u67b6\u7684\u5b89\u88c5\u548c\u914d\u7f6e<\/li>\n\n\n\n<li>\u5f00\u53d1\u73af\u5883\u7684\u914d\u7f6e<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u8def\u7531\u548c\u63a7\u5236\u5668\n<ul class=\"wp-block-list\">\n<li>\u4ec0\u4e48\u662f\u8def\u7531<\/li>\n\n\n\n<li>\u521b\u5efa\u8def\u7531<\/li>\n\n\n\n<li>\u8def\u7531\u548c\u63a7\u5236\u5668\u4e4b\u95f4\u7684\u5173\u7cfb<\/li>\n\n\n\n<li>\u521b\u5efa\u63a7\u5236\u5668<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u89c6\u56fe\u548c\u6a21\u677f\u5f15\u64ce\n<ul class=\"wp-block-list\">\n<li>\u4ec0\u4e48\u662f\u89c6\u56fe<\/li>\n\n\n\n<li>\u521b\u5efa\u89c6\u56fe<\/li>\n\n\n\n<li>Blade\u6a21\u677f\u5f15\u64ce<\/li>\n\n\n\n<li>\u6a21\u677f\u7ee7\u627f\u548c\u7ec4\u4ef6\u5316<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u6570\u636e\u5e93\u548cEloquent ORM\n<ul class=\"wp-block-list\">\n<li>\u6570\u636e\u5e93\u914d\u7f6e\u548c\u8fde\u63a5<\/li>\n\n\n\n<li>\u4ec0\u4e48\u662fEloquent ORM<\/li>\n\n\n\n<li>\u521b\u5efa\u6a21\u578b\u548c\u8fc1\u79fb\u6587\u4ef6<\/li>\n\n\n\n<li>Eloquent\u5173\u7cfb<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u8868\u5355\u548c\u6570\u636e\u9a8c\u8bc1\n<ul class=\"wp-block-list\">\n<li>\u521b\u5efa\u8868\u5355<\/li>\n\n\n\n<li>\u63a5\u6536\u8868\u5355\u6570\u636e\u548c\u5904\u7406<\/li>\n\n\n\n<li>\u6570\u636e\u9a8c\u8bc1\u548c\u9519\u8bef\u5904\u7406<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u8ba4\u8bc1\u548c\u6388\u6743\n<ul class=\"wp-block-list\">\n<li>Laravel\u5185\u7f6e\u8ba4\u8bc1\u7cfb\u7edf<\/li>\n\n\n\n<li>\u7528\u6237\u6ce8\u518c\u548c\u767b\u5f55<\/li>\n\n\n\n<li>\u7528\u6237\u6388\u6743\u548c\u7b56\u7565<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u4efb\u52a1\u8c03\u5ea6\u548c\u961f\u5217\n<ul class=\"wp-block-list\">\n<li>Laravel\u4efb\u52a1\u8c03\u5ea6\u5668<\/li>\n\n\n\n<li>\u4ec0\u4e48\u662f\u961f\u5217<\/li>\n\n\n\n<li>\u961f\u5217\u7684\u914d\u7f6e\u548c\u4f7f\u7528<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u6d4b\u8bd5\u548c\u90e8\u7f72\n<ul class=\"wp-block-list\">\n<li>\u7f16\u5199\u6d4b\u8bd5\u7528\u4f8b<\/li>\n\n\n\n<li>\u8fd0\u884c\u6d4b\u8bd5\u548c\u68c0\u67e5\u7ed3\u679c<\/li>\n\n\n\n<li>\u90e8\u7f72Laravel\u5e94\u7528\u7a0b\u5e8f\u5230\u751f\u4ea7\u73af\u5883<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Laravel\u9ad8\u7ea7\u7279\u6027\u548c\u5b9e\u7528\u6280\u5de7\n<ul class=\"wp-block-list\">\n<li>\u4f9d\u8d56\u6ce8\u5165\u548c\u670d\u52a1\u5bb9\u5668<\/li>\n\n\n\n<li>\u4e8b\u4ef6\u548c\u76d1\u542c\u5668<\/li>\n\n\n\n<li>\u7f13\u5b58\u548c\u6027\u80fd\u4f18\u5316<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u8bfe\u7a0b\u603b\u7ed3\u548c\u672a\u6765\u5b66\u4e60\u8def\u5f84\n<ul class=\"wp-block-list\">\n<li>\u672c\u8bfe\u7a0b\u6240\u5b66\u5185\u5bb9\u56de\u987e<\/li>\n\n\n\n<li>\u5efa\u8bae\u7684\u540e\u7eed\u5b66\u4e60\u8d44\u6e90\u548c\u8fdb\u9636\u8bfe\u7a0b<\/li>\n\n\n\n<li>Laravel\u793e\u533a\u548c\u751f\u6001<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p>\u8fd9\u4e2a\u5927\u7eb2\u5e94\u8be5\u80fd\u4e3a\u5b66\u751f\u63d0\u4f9b\u4e00\u4e2a\u5168\u9762\u7684L<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u7ee7\u7eed<\/p>\n\n\n\n<p>aravel\u6559\u7a0b\u7684\u8bfe\u7a0b\u76ee\u6807\u548c\u5927\u7eb2\uff1a<\/p>\n\n\n\n<p>\u672c\u8bfe\u7a0b\u7684\u5927\u7eb2\u5c06\u8986\u76d6Laravel\u6846\u67b6\u7684\u4e3b\u8981\u6982\u5ff5\u548c\u6280\u672f\uff0c\u5305\u62ec\u8def\u7531\u548c\u63a7\u5236\u5668\u3001\u89c6\u56fe\u548c\u6a21\u677f\u5f15\u64ce\u3001\u6570\u636e\u5e93\u548cEloquent ORM\u3001\u8868\u5355\u548c\u6570\u636e\u9a8c\u8bc1\u3001\u8ba4\u8bc1\u548c\u6388\u6743\u3001\u4efb\u52a1\u8c03\u5ea6\u548c\u961f\u5217\u3001\u6d4b\u8bd5\u548c\u90e8\u7f72\u7b49\u3002\u540c\u65f6\uff0c\u672c\u8bfe\u7a0b\u8fd8\u4f1a\u4ecb\u7ecd\u4e00\u4e9b\u9ad8\u7ea7\u7279\u6027\u548c\u5b9e\u7528\u6280\u5de7\uff0c\u5982\u4f9d\u8d56\u6ce8\u5165\u548c\u670d\u52a1\u5bb9\u5668\u3001\u4e8b\u4ef6\u548c\u76d1\u542c\u5668\u3001\u7f13\u5b58\u548c\u6027\u80fd\u4f18\u5316\u7b49\u3002<\/p>\n\n\n\n<p>\u5728\u5b66\u4e60\u672c\u8bfe\u7a0b\u65f6\uff0c\u5b66\u751f\u5c06\u4f1a\u4f7f\u7528Laravel\u6846\u67b6\u6765\u5f00\u53d1\u4e00\u4e2a\u5b8c\u6574\u7684Web\u5e94\u7528\u7a0b\u5e8f\u3002\u901a\u8fc7\u8fd9\u4e2a\u8fc7\u7a0b\uff0c\u5b66\u751f\u5c06\u4f1a\u638c\u63e1Laravel\u6846\u67b6\u7684\u5404\u79cd\u6280\u672f\u548c\u529f\u80fd\uff0c\u540c\u65f6\u4e5f\u4f1a\u5b66\u4e60\u5230\u5982\u4f55\u4f7f\u7528Laravel\u6765\u6784\u5efa\u9ad8\u8d28\u91cf\u7684Web\u5e94\u7528\u7a0b\u5e8f\u3002<\/p>\n\n\n\n<p>\u5728\u5b8c\u6210\u672c\u8bfe\u7a0b\u540e\uff0c\u5b66\u751f\u5e94\u8be5\u80fd\u591f\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u7406\u89e3Laravel\u6846\u67b6\u7684\u57fa\u672c\u6982\u5ff5\u548c\u4f18\u52bf\uff1b<\/li>\n\n\n\n<li>\u719f\u7ec3\u638c\u63e1Laravel\u6846\u67b6\u7684\u5404\u79cd\u6280\u672f\u548c\u529f\u80fd\uff1b<\/li>\n\n\n\n<li>\u80fd\u591f\u4f7f\u7528Laravel\u6846\u67b6\u5f00\u53d1\u9ad8\u8d28\u91cf\u7684Web\u5e94\u7528\u7a0b\u5e8f\uff1b<\/li>\n\n\n\n<li>\u7406\u89e3Laravel\u6846\u67b6\u7684\u6269\u5c55\u6027\u548c\u53ef\u5b9a\u5236\u6027\uff1b<\/li>\n\n\n\n<li>\u638c\u63e1\u6d4b\u8bd5\u3001\u90e8\u7f72\u548c\u7ef4\u62a4Laravel\u5e94\u7528\u7a0b\u5e8f\u7684\u65b9\u6cd5\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u901a\u8fc7\u672c\u8bfe\u7a0b\u7684\u5b66\u4e60\uff0c\u5b66\u751f\u5c06\u80fd\u591f\u638c\u63e1Laravel\u6846\u67b6\u7684\u57fa\u672c\u77e5\u8bc6\u548c\u6280\u80fd\uff0c\u5e76\u80fd\u591f\u5e94\u7528\u8fd9\u4e9b\u77e5\u8bc6\u548c\u6280\u80fd\u6765\u5f00\u53d1\u9ad8\u8d28\u91cf\u7684Web\u5e94\u7528\u7a0b\u5e8f\u3002\u540c\u65f6\uff0c\u5b66\u751f\u4e5f\u5c06\u4f1a\u6709\u8db3\u591f\u7684\u7406\u8bba\u548c\u5b9e\u8df5\u57fa\u7840\uff0c\u4ee5\u4fbf\u80fd\u591f\u5728\u672a\u6765\u6df1\u5165\u5b66\u4e60\u548c\u63a2\u7d22Laravel\u6846\u67b6\u7684\u9ad8\u7ea7\u7279\u6027\u548c\u66f4\u590d\u6742\u7684\u5e94\u7528\u573a\u666f\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91ca\u5982\u4f55\u5b89\u88c5PHP\u3001Composer\u4e0eLaravel<\/p>\n\n\n\n<p>\u5b89\u88c5PHP\u3001Composer\u548cLaravel\u662f\u5f00\u59cb\u5b66\u4e60Laravel\u6846\u67b6\u7684\u7b2c\u4e00\u6b65\u3002\u4ee5\u4e0b\u662f\u5b89\u88c5\u8fd9\u4e9b\u5de5\u5177\u7684\u6b65\u9aa4\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u5b89\u88c5PHP\uff1a<\/li>\n<\/ol>\n\n\n\n<p>Laravel\u6846\u67b6\u9700\u8981PHP 7.3\u6216\u66f4\u9ad8\u7248\u672c\u3002\u60a8\u53ef\u4ee5\u4ecePHP\u5b98\u65b9\u7f51\u7ad9\uff08<a href=\"https:\/\/www.php.net\/downloads%EF%BC%89%E4%B8%8B%E8%BD%BD%E9%80%82%E7%94%A8%E4%BA%8E%E6%82%A8%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E7%9A%84PHP%E5%AE%89%E8%A3%85%E7%A8%8B%E5%BA%8F%EF%BC%8C%E5%B9%B6%E6%8C%89%E7%85%A7%E5%AE%89%E8%A3%85%E7%A8%8B%E5%BA%8F%E7%9A%84%E6%8C%87%E7%A4%BA%E8%BF%9B%E8%A1%8C%E5%AE%89%E8%A3%85%E3%80%82%E5%AE%89%E8%A3%85%E5%AE%8C%E6%88%90%E5%90%8E%EF%BC%8C%E6%82%A8%E5%8F%AF%E4%BB%A5%E5%9C%A8%E7%BB%88%E7%AB%AF%EF%BC%88%E5%91%BD%E4%BB%A4%E8%A1%8C%EF%BC%89%E7%AA%97%E5%8F%A3%E4%B8%AD%E8%BE%93%E5%85%A5%E4%BB%A5%E4%B8%8B%E5%91%BD%E4%BB%A4%E6%9D%A5%E6%A3%80%E6%9F%A5PHP%E7%89%88%E6%9C%AC%EF%BC%9A\">https:\/\/www.php.net\/downloads\uff09\u4e0b\u8f7d\u9002\u7528\u4e8e\u60a8\u64cd\u4f5c\u7cfb\u7edf\u7684PHP\u5b89\u88c5\u7a0b\u5e8f\uff0c\u5e76\u6309\u7167\u5b89\u88c5\u7a0b\u5e8f\u7684\u6307\u793a\u8fdb\u884c\u5b89\u88c5\u3002\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u60a8\u53ef\u4ee5\u5728\u7ec8\u7aef\uff08\u547d\u4ee4\u884c\uff09\u7a97\u53e3\u4e2d\u8f93\u5165\u4ee5\u4e0b\u547d\u4ee4\u6765\u68c0\u67e5PHP\u7248\u672c\uff1a<\/a><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Copy code<code>php -v\n<\/code><\/pre>\n\n\n\n<p>\u5982\u679c\u5b89\u88c5\u6210\u529f\uff0c\u60a8\u5e94\u8be5\u4f1a\u770b\u5230PHP\u7248\u672c\u53f7\u7684\u8f93\u51fa\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u5b89\u88c5Composer\uff1a<\/li>\n<\/ol>\n\n\n\n<p>Composer\u662fPHP\u7684\u4e00\u4e2a\u4f9d\u8d56\u7ba1\u7406\u5668\uff0c\u7528\u4e8e\u7ba1\u7406PHP\u9879\u76ee\u4e2d\u7684\u4f9d\u8d56\u5305\u548c\u5e93\u3002\u60a8\u53ef\u4ee5\u4eceComposer\u5b98\u65b9\u7f51\u7ad9\uff08<a href=\"https:\/\/getcomposer.org\/download\/%EF%BC%89%E4%B8%8B%E8%BD%BD%E9%80%82%E7%94%A8%E4%BA%8E%E6%82%A8%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E7%9A%84Composer%E5%AE%89%E8%A3%85%E7%A8%8B%E5%BA%8F%EF%BC%8C%E5%B9%B6%E6%8C%89%E7%85%A7%E5%AE%89%E8%A3%85%E7%A8%8B%E5%BA%8F%E7%9A%84%E6%8C%87%E7%A4%BA%E8%BF%9B%E8%A1%8C%E5%AE%89%E8%A3%85%E3%80%82%E5%AE%89%E8%A3%85%E5%AE%8C%E6%88%90%E5%90%8E%EF%BC%8C%E6%82%A8%E5%8F%AF%E4%BB%A5%E5%9C%A8%E7%BB%88%E7%AB%AF%EF%BC%88%E5%91%BD%E4%BB%A4%E8%A1%8C%EF%BC%89%E7%AA%97%E5%8F%A3%E4%B8%AD%E8%BE%93%E5%85%A5%E4%BB%A5%E4%B8%8B%E5%91%BD%E4%BB%A4%E6%9D%A5%E6%A3%80%E6%9F%A5Composer%E6%98%AF%E5%90%A6%E5%AE%89%E8%A3%85%E6%88%90%E5%8A%9F%EF%BC%9A\">https:\/\/getcomposer.org\/download\/\uff09\u4e0b\u8f7d\u9002\u7528\u4e8e\u60a8\u64cd\u4f5c\u7cfb\u7edf\u7684Composer\u5b89\u88c5\u7a0b\u5e8f\uff0c\u5e76\u6309\u7167\u5b89\u88c5\u7a0b\u5e8f\u7684\u6307\u793a\u8fdb\u884c\u5b89\u88c5\u3002\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u60a8\u53ef\u4ee5\u5728\u7ec8\u7aef\uff08\u547d\u4ee4\u884c\uff09\u7a97\u53e3\u4e2d\u8f93\u5165\u4ee5\u4e0b\u547d\u4ee4\u6765\u68c0\u67e5Composer\u662f\u5426\u5b89\u88c5\u6210\u529f\uff1a<\/a><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Copy code<code>composer -V\n<\/code><\/pre>\n\n\n\n<p>\u5982\u679c\u5b89\u88c5\u6210\u529f\uff0c\u60a8\u5e94\u8be5\u4f1a\u770b\u5230Composer\u7248\u672c\u53f7\u7684\u8f93\u51fa\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u5b89\u88c5Laravel\uff1a<\/li>\n<\/ol>\n\n\n\n<p>\u4e00\u65e6\u60a8\u5b89\u88c5\u4e86PHP\u548cComposer\uff0c\u5c31\u53ef\u4ee5\u4f7f\u7528Composer\u6765\u5b89\u88c5Laravel\u6846\u67b6\u3002\u5728\u7ec8\u7aef\uff08\u547d\u4ee4\u884c\uff09\u7a97\u53e3\u4e2d\uff0c\u8f93\u5165\u4ee5\u4e0b\u547d\u4ee4\u6765\u4f7f\u7528Composer\u5b89\u88c5Laravel\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">javascriptCopy code<code>composer global require laravel\/installer\n<\/code><\/pre>\n\n\n\n<p>\u6b64\u547d\u4ee4\u5c06\u5168\u5c40\u5b89\u88c5Laravel\u6846\u67b6\uff0c\u4f7f\u60a8\u53ef\u4ee5\u4f7f\u7528Laravel\u547d\u4ee4\u884c\u5de5\u5177\u6765\u521b\u5efa\u65b0\u7684Laravel\u9879\u76ee\u3002\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u60a8\u53ef\u4ee5\u8f93\u5165\u4ee5\u4e0b\u547d\u4ee4\u6765\u68c0\u67e5Laravel\u662f\u5426\u5b89\u88c5\u6210\u529f\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Copy code<code>laravel -v\n<\/code><\/pre>\n\n\n\n<p>\u5982\u679c\u5b89\u88c5\u6210\u529f\uff0c\u60a8\u5e94\u8be5\u4f1a\u770b\u5230Laravel\u7248\u672c\u53f7\u7684\u8f93\u51fa\u3002<\/p>\n\n\n\n<p>\u8fd9\u4e9b\u662f\u5b89\u88c5PHP\u3001Composer\u548cLaravel\u7684\u57fa\u672c\u6b65\u9aa4\u3002\u5b89\u88c5\u6210\u529f\u540e\uff0c\u60a8\u5c31\u53ef\u4ee5\u5f00\u59cb\u4f7f\u7528Laravel\u6846\u67b6\u6765\u5f00\u53d1Web\u5e94\u7528\u7a0b\u5e8f\u4e86\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91ca\u5982\u4f55\u521b\u5efaLaravel\u9879\u76ee<\/p>\n\n\n\n<p>\u521b\u5efa\u4e00\u4e2aLaravel\u9879\u76ee\u9700\u8981\u4f7f\u7528Laravel\u547d\u4ee4\u884c\u5de5\u5177\uff0c\u5b83\u662f\u901a\u8fc7Composer\u5b89\u88c5\u7684\u3002\u4e0b\u9762\u662f\u521b\u5efa\u4e00\u4e2aLaravel\u9879\u76ee\u7684\u6b65\u9aa4\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u6253\u5f00\u7ec8\u7aef\uff08\u547d\u4ee4\u884c\uff09\u7a97\u53e3\uff1a<\/li>\n<\/ol>\n\n\n\n<p>\u5728Windows\u7cfb\u7edf\u4e2d\uff0c\u53ef\u4ee5\u6309\u4e0bWin+R\u7ec4\u5408\u952e\uff0c\u7136\u540e\u8f93\u5165cmd\u5e76\u6309\u4e0b\u56de\u8f66\u952e\u6765\u6253\u5f00\u547d\u4ee4\u63d0\u793a\u7b26\u7a97\u53e3\u3002\u5728macOS\u6216Linux\u7cfb\u7edf\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528\u7ec8\u7aef\uff08Terminal\uff09\u5e94\u7528\u7a0b\u5e8f\u6765\u6253\u5f00\u7ec8\u7aef\u7a97\u53e3\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u8fdb\u5165\u4f60\u7684Web\u670d\u52a1\u5668\u6839\u76ee\u5f55\uff1a<\/li>\n<\/ol>\n\n\n\n<p>\u5728\u7ec8\u7aef\u7a97\u53e3\u4e2d\uff0c\u4f7f\u7528cd\u547d\u4ee4\u8fdb\u5165\u60a8\u7684Web\u670d\u52a1\u5668\u6839\u76ee\u5f55\u3002\u4f8b\u5982\uff0c\u5982\u679c\u60a8\u7684Web\u670d\u52a1\u5668\u6839\u76ee\u5f55\u662f\/var\/www\/html\uff0c\u5219\u53ef\u4ee5\u8f93\u5165\u4ee5\u4e0b\u547d\u4ee4\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bashCopy code<code>cd \/var\/www\/html\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u4f7f\u7528Laravel\u547d\u4ee4\u884c\u5de5\u5177\u521b\u5efa\u65b0\u9879\u76ee\uff1a<\/li>\n<\/ol>\n\n\n\n<p>\u5728\u7ec8\u7aef\u7a97\u53e3\u4e2d\uff0c\u8f93\u5165\u4ee5\u4e0b\u547d\u4ee4\u6765\u4f7f\u7528Laravel\u547d\u4ee4\u884c\u5de5\u5177\u521b\u5efa\u4e00\u4e2a\u65b0\u9879\u76ee\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">arduinoCopy code<code>laravel new project-name\n<\/code><\/pre>\n\n\n\n<p>\u5176\u4e2d\uff0cproject-name\u662f\u60a8\u8981\u4e3a\u65b0\u9879\u76ee\u6307\u5b9a\u7684\u540d\u79f0\u3002\u6267\u884c\u6b64\u547d\u4ee4\u540e\uff0cLaravel\u547d\u4ee4\u884c\u5de5\u5177\u5c06\u4f1a\u4e0b\u8f7d\u548c\u5b89\u88c5Laravel\u6846\u67b6\u53ca\u5176\u6240\u6709\u4f9d\u8d56\u9879\uff0c\u5e76\u5728\u60a8\u7684Web\u670d\u52a1\u5668\u6839\u76ee\u5f55\u4e0b\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u9879\u76ee\u76ee\u5f55\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u8fd0\u884c\u5f00\u53d1\u670d\u52a1\u5668\uff1a<\/li>\n<\/ol>\n\n\n\n<p>\u5728\u7ec8\u7aef\u7a97\u53e3\u4e2d\uff0c\u4f7f\u7528cd\u547d\u4ee4\u8fdb\u5165\u65b0\u9879\u76ee\u76ee\u5f55\uff0c\u7136\u540e\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u4ee5\u542f\u52a8Laravel\u7684\u5f00\u53d1\u670d\u52a1\u5668\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Copy code<code>php artisan serve\n<\/code><\/pre>\n\n\n\n<p>\u6b64\u547d\u4ee4\u5c06\u4f1a\u542f\u52a8Laravel\u7684\u5185\u7f6e\u5f00\u53d1\u670d\u52a1\u5668\uff0c\u5e76\u5c06\u60a8\u7684Web\u5e94\u7528\u7a0b\u5e8f\u8fd0\u884c\u5728\u672c\u5730\u4e3b\u673a\u4e0a\u3002\u60a8\u53ef\u4ee5\u4f7f\u7528\u60a8\u7684Web\u6d4f\u89c8\u5668\u6765\u8bbf\u95ee\u8be5\u5e94\u7528\u7a0b\u5e8f\uff0c\u5730\u5740\u4e3a<a href=\"http:\/\/localhost:8000%E3%80%82\/\">http:\/\/localhost:8000\u3002<\/a><\/p>\n\n\n\n<p>\u73b0\u5728\uff0c\u60a8\u5df2\u7ecf\u6210\u529f\u521b\u5efa\u4e86\u4e00\u4e2a\u65b0\u7684Laravel\u9879\u76ee\uff0c\u5e76\u5728\u672c\u5730\u4e3b\u673a\u4e0a\u8fd0\u884c\u5b83\u3002\u63a5\u4e0b\u6765\uff0c\u60a8\u53ef\u4ee5\u5f00\u59cb\u7f16\u8f91\u548c\u5b9a\u5236\u8be5\u9879\u76ee\uff0c\u4ee5\u4fbf\u6ee1\u8db3\u60a8\u7684\u9700\u6c42\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91ca\u5982\u4f55\u914d\u7f6e\u5f00\u53d1\u73af\u5883<\/p>\n\n\n\n<p>\u4e3a\u4e86\u4f7f\u7528Laravel\u6846\u67b6\u8fdb\u884cWeb\u5e94\u7528\u7a0b\u5e8f\u7684\u5f00\u53d1\uff0c\u60a8\u9700\u8981\u914d\u7f6e\u60a8\u7684\u5f00\u53d1\u73af\u5883\uff0c\u5305\u62ecWeb\u670d\u52a1\u5668\u3001PHP\u7248\u672c\u548c\u6570\u636e\u5e93\u7b49\u3002\u4ee5\u4e0b\u662f\u914d\u7f6eLaravel\u5f00\u53d1\u73af\u5883\u7684\u6b65\u9aa4\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u5b89\u88c5Web\u670d\u52a1\u5668\uff1a<\/li>\n<\/ol>\n\n\n\n<p>\u60a8\u53ef\u4ee5\u4f7f\u7528\u5404\u79cdWeb\u670d\u52a1\u5668\uff0c\u5982Apache\u3001Nginx\u7b49\uff0c\u6765\u8fd0\u884cLaravel\u5e94\u7528\u7a0b\u5e8f\u3002\u5b89\u88c5\u548c\u914d\u7f6e\u8fd9\u4e9bWeb\u670d\u52a1\u5668\u7684\u8fc7\u7a0b\u53ef\u80fd\u4f1a\u6709\u6240\u4e0d\u540c\uff0c\u5177\u4f53\u53d6\u51b3\u4e8e\u60a8\u4f7f\u7528\u7684\u64cd\u4f5c\u7cfb\u7edf\u548cWeb\u670d\u52a1\u5668\u3002\u901a\u5e38\uff0c\u60a8\u9700\u8981\u5b89\u88c5\u5e76\u542f\u52a8Web\u670d\u52a1\u5668\uff0c\u7136\u540e\u5c06\u5176\u914d\u7f6e\u4e3a\u5c06\u8bf7\u6c42\u8f6c\u53d1\u5230Laravel\u5e94\u7528\u7a0b\u5e8f\u7684public\u76ee\u5f55\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u5b89\u88c5PHP\uff1a<\/li>\n<\/ol>\n\n\n\n<p>Laravel\u9700\u8981PHP 7.3\u6216\u66f4\u9ad8\u7248\u672c\u3002\u60a8\u53ef\u4ee5\u4ecePHP\u5b98\u65b9\u7f51\u7ad9\uff08<a href=\"https:\/\/www.php.net\/downloads%EF%BC%89%E4%B8%8B%E8%BD%BD%E9%80%82%E7%94%A8%E4%BA%8E%E6%82%A8%E7%9A%84%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E7%9A%84PHP%E5%AE%89%E8%A3%85%E7%A8%8B%E5%BA%8F%EF%BC%8C%E5%B9%B6%E6%8C%89%E7%85%A7%E5%AE%89%E8%A3%85%E7%A8%8B%E5%BA%8F%E7%9A%84%E6%8C%87%E7%A4%BA%E8%BF%9B%E8%A1%8C%E5%AE%89%E8%A3%85%E3%80%82%E5%AE%89%E8%A3%85%E5%AE%8C%E6%88%90%E5%90%8E%EF%BC%8C%E6%82%A8%E9%9C%80%E8%A6%81%E5%B0%86PHP%E6%B7%BB%E5%8A%A0%E5%88%B0%E7%B3%BB%E7%BB%9F%E8%B7%AF%E5%BE%84%E4%B8%AD%EF%BC%8C%E4%BB%A5%E4%BE%BF%E5%9C%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%B8%AD%E4%BD%BF%E7%94%A8php%E5%91%BD%E4%BB%A4%E3%80%82\">https:\/\/www.php.net\/downloads\uff09\u4e0b\u8f7d\u9002\u7528\u4e8e\u60a8\u7684\u64cd\u4f5c\u7cfb\u7edf\u7684PHP\u5b89\u88c5\u7a0b\u5e8f\uff0c\u5e76\u6309\u7167\u5b89\u88c5\u7a0b\u5e8f\u7684\u6307\u793a\u8fdb\u884c\u5b89\u88c5\u3002\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u60a8\u9700\u8981\u5c06PHP\u6dfb\u52a0\u5230\u7cfb\u7edf\u8def\u5f84\u4e2d\uff0c\u4ee5\u4fbf\u5728\u547d\u4ee4\u884c\u4e2d\u4f7f\u7528php\u547d\u4ee4\u3002<\/a><\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u5b89\u88c5Composer\uff1a<\/li>\n<\/ol>\n\n\n\n<p>Composer\u662fPHP\u7684\u4e00\u4e2a\u4f9d\u8d56\u7ba1\u7406\u5668\uff0c\u7528\u4e8e\u7ba1\u7406PHP\u9879\u76ee\u4e2d\u7684\u4f9d\u8d56\u5305\u548c\u5e93\u3002\u60a8\u53ef\u4ee5\u4eceComposer\u5b98\u65b9\u7f51\u7ad9\uff08<a href=\"https:\/\/getcomposer.org\/download\/%EF%BC%89%E4%B8%8B%E8%BD%BD%E9%80%82%E7%94%A8%E4%BA%8E%E6%82%A8%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E7%9A%84Composer%E5%AE%89%E8%A3%85%E7%A8%8B%E5%BA%8F%EF%BC%8C%E5%B9%B6%E6%8C%89%E7%85%A7%E5%AE%89%E8%A3%85%E7%A8%8B%E5%BA%8F%E7%9A%84%E6%8C%87%E7%A4%BA%E8%BF%9B%E8%A1%8C%E5%AE%89%E8%A3%85%E3%80%82%E5%AE%89%E8%A3%85%E5%AE%8C%E6%88%90%E5%90%8E%EF%BC%8C%E6%82%A8%E9%9C%80%E8%A6%81%E5%B0%86Composer%E6%B7%BB%E5%8A%A0%E5%88%B0%E7%B3%BB%E7%BB%9F%E8%B7%AF%E5%BE%84%E4%B8%AD%EF%BC%8C%E4%BB%A5%E4%BE%BF%E5%9C%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%B8%AD%E4%BD%BF%E7%94%A8composer%E5%91%BD%E4%BB%A4%E3%80%82\">https:\/\/getcomposer.org\/download\/\uff09\u4e0b\u8f7d\u9002\u7528\u4e8e\u60a8\u64cd\u4f5c\u7cfb\u7edf\u7684Composer\u5b89\u88c5\u7a0b\u5e8f\uff0c\u5e76\u6309\u7167\u5b89\u88c5\u7a0b\u5e8f\u7684\u6307\u793a\u8fdb\u884c\u5b89\u88c5\u3002\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u60a8\u9700\u8981\u5c06Composer\u6dfb\u52a0\u5230\u7cfb\u7edf\u8def\u5f84\u4e2d\uff0c\u4ee5\u4fbf\u5728\u547d\u4ee4\u884c\u4e2d\u4f7f\u7528composer\u547d\u4ee4\u3002<\/a><\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u914d\u7f6eLaravel\u5e94\u7528\u7a0b\u5e8f\uff1a<\/li>\n<\/ol>\n\n\n\n<p>\u4e00\u65e6\u60a8\u5b89\u88c5\u4e86Web\u670d\u52a1\u5668\u3001PHP\u548cComposer\uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528Composer\u6765\u5b89\u88c5Laravel\u6846\u67b6\uff0c\u5e76\u5c06\u5176\u914d\u7f6e\u4e3a\u4e0eWeb\u670d\u52a1\u5668\u548c\u6570\u636e\u5e93\u4e00\u8d77\u4f7f\u7528\u3002\u60a8\u9700\u8981\u7f16\u8f91Laravel\u5e94\u7528\u7a0b\u5e8f\u7684.env\u6587\u4ef6\uff0c\u5c06\u5176\u914d\u7f6e\u4e3a\u4f7f\u7528\u6b63\u786e\u7684\u6570\u636e\u5e93\u548c\u5e94\u7528\u7a0b\u5e8f\u5bc6\u94a5\u7b49\u4fe1\u606f\u3002\u60a8\u8fd8\u53ef\u4ee5\u4f7f\u7528Laravel\u547d\u4ee4\u884c\u5de5\u5177\u6765\u751f\u6210\u6570\u636e\u8fc1\u79fb\u6587\u4ef6\u548c\u6a21\u578b\u7b49\u4ee3\u7801\u6587\u4ef6\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"5\">\n<li>\u5b89\u88c5\u6570\u636e\u5e93\uff1a<\/li>\n<\/ol>\n\n\n\n<p>Laravel\u6846\u67b6\u652f\u6301\u591a\u79cd\u7c7b\u578b\u7684\u6570\u636e\u5e93\uff0c\u5982MySQL\u3001PostgreSQL\u7b49\u3002\u60a8\u9700\u8981\u6839\u636e\u60a8\u7684\u9700\u6c42\u548c\u504f\u597d\u9009\u62e9\u4e00\u4e2a\u6570\u636e\u5e93\uff0c\u5e76\u5c06\u5176\u5b89\u88c5\u548c\u914d\u7f6e\u5230\u60a8\u7684\u5f00\u53d1\u73af\u5883\u4e2d\u3002\u60a8\u53ef\u4ee5\u5728Laravel\u5e94\u7528\u7a0b\u5e8f\u7684\u914d\u7f6e\u6587\u4ef6\u4e2d\u6307\u5b9a\u6570\u636e\u5e93\u8fde\u63a5\u548c\u8ba4\u8bc1\u4fe1\u606f\u3002<\/p>\n\n\n\n<p>\u8fd9\u4e9b\u662f\u914d\u7f6eLaravel\u5f00\u53d1\u73af\u5883\u7684\u57fa\u672c\u6b65\u9aa4\u3002\u6210\u529f\u914d\u7f6e\u5f00\u53d1\u73af\u5883\u540e\uff0c\u60a8\u53ef\u4ee5\u5f00\u59cb\u4f7f\u7528Laravel\u6846\u67b6\u6765\u5f00\u53d1Web\u5e94\u7528\u7a0b\u5e8f\u4e86\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91caLaravel\u76ee\u5f55\u7ed3\u6784<\/p>\n\n\n\n<p>Laravel\u6846\u67b6\u5177\u6709\u7edf\u4e00\u7684\u76ee\u5f55\u7ed3\u6784\uff0c\u8fd9\u4f7f\u5f97\u5f00\u53d1\u8005\u53ef\u4ee5\u5feb\u901f\u4e86\u89e3\u5e94\u7528\u7a0b\u5e8f\u7684\u7ed3\u6784\u548c\u6587\u4ef6\u4f4d\u7f6e\u3002\u4ee5\u4e0b\u662fLaravel\u76ee\u5f55\u7ed3\u6784\u7684\u8be6\u7ec6\u8bf4\u660e\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>app\u76ee\u5f55\uff1a<\/li>\n<\/ul>\n\n\n\n<p>app\u76ee\u5f55\u5305\u542b\u5e94\u7528\u7a0b\u5e8f\u7684\u6240\u6709\u6838\u5fc3\u4ee3\u7801\uff0c\u5982\u63a7\u5236\u5668\u3001\u6a21\u578b\u3001\u89c6\u56fe\u548c\u670d\u52a1\u63d0\u4f9b\u8005\u7b49\u3002\u5176\u4e2d\uff0c\u63a7\u5236\u5668\uff08Controllers\uff09\u7528\u4e8e\u5904\u7406HTTP\u8bf7\u6c42\uff0c\u6a21\u578b\uff08Models\uff09\u7528\u4e8e\u8bbf\u95ee\u548c\u64cd\u4f5c\u6570\u636e\u5e93\uff0c\u89c6\u56fe\uff08Views\uff09\u7528\u4e8e\u5448\u73b0HTML\u9875\u9762\u548c\u6570\u636e\u7b49\u3002\u670d\u52a1\u63d0\u4f9b\u8005\uff08Service Providers\uff09\u7528\u4e8e\u6ce8\u518c\u5e94\u7528\u7a0b\u5e8f\u7684\u5404\u79cd\u670d\u52a1\u548c\u4f9d\u8d56\u9879\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>bootstrap\u76ee\u5f55\uff1a<\/li>\n<\/ul>\n\n\n\n<p>bootstrap\u76ee\u5f55\u5305\u542b\u542f\u52a8\u5e94\u7528\u7a0b\u5e8f\u6240\u9700\u7684\u6240\u6709\u4ee3\u7801\uff0c\u5305\u62ec\u81ea\u52a8\u52a0\u8f7d\u5668\uff08autoloaders\uff09\u3001\u73af\u5883\u914d\u7f6e\u548c\u542f\u52a8\u5f15\u5bfc\u7b49\u3002\u5176\u4e2d\uff0cautoloaders\u7528\u4e8e\u81ea\u52a8\u52a0\u8f7d\u6240\u6709\u5e94\u7528\u7a0b\u5e8f\u7684\u7c7b\u6587\u4ef6\uff0c\u73af\u5883\u914d\u7f6e\u5305\u542b\u4e86\u5e94\u7528\u7a0b\u5e8f\u7684\u6240\u6709\u73af\u5883\u53d8\u91cf\u548c\u8bbe\u7f6e\uff0c\u542f\u52a8\u5f15\u5bfc\u7528\u4e8e\u521d\u59cb\u5316\u5e94\u7528\u7a0b\u5e8f\u7684\u5404\u79cd\u670d\u52a1\u548c\u7ec4\u4ef6\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>config\u76ee\u5f55\uff1a<\/li>\n<\/ul>\n\n\n\n<p>config\u76ee\u5f55\u5305\u542b\u5e94\u7528\u7a0b\u5e8f\u7684\u6240\u6709\u914d\u7f6e\u6587\u4ef6\uff0c\u5982\u6570\u636e\u5e93\u3001\u7f13\u5b58\u548c\u90ae\u4ef6\u7b49\u3002\u8fd9\u4e9b\u6587\u4ef6\u53ef\u4ee5\u7528\u4e8e\u914d\u7f6e\u5e94\u7528\u7a0b\u5e8f\u7684\u5404\u79cd\u670d\u52a1\u548c\u7ec4\u4ef6\uff0c\u4ee5\u6ee1\u8db3\u5f00\u53d1\u8005\u7684\u9700\u6c42\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>database\u76ee\u5f55\uff1a<\/li>\n<\/ul>\n\n\n\n<p>database\u76ee\u5f55\u5305\u542b\u6240\u6709\u5e94\u7528\u7a0b\u5e8f\u7684\u6570\u636e\u5e93\u76f8\u5173\u4ee3\u7801\uff0c\u5982\u8fc1\u79fb\u6587\u4ef6\uff08migrations\uff09\u3001\u6570\u636e\u586b\u5145\u5668\uff08seeders\uff09\u548c\u6570\u636e\u5e93\u5de5\u5382\uff08factories\uff09\u7b49\u3002\u5176\u4e2d\uff0c\u8fc1\u79fb\u6587\u4ef6\u7528\u4e8e\u521b\u5efa\u548c\u66f4\u65b0\u6570\u636e\u5e93\u7ed3\u6784\uff0c\u6570\u636e\u586b\u5145\u5668\u7528\u4e8e\u586b\u5145\u6570\u636e\u5e93\u4e2d\u7684\u6570\u636e\uff0c\u6570\u636e\u5e93\u5de5\u5382\u7528\u4e8e\u751f\u6210\u6d4b\u8bd5\u6570\u636e\u548c\u6a21\u62df\u6570\u636e\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>public\u76ee\u5f55\uff1a<\/li>\n<\/ul>\n\n\n\n<p>public\u76ee\u5f55\u5305\u542b\u5e94\u7528\u7a0b\u5e8f\u7684\u6240\u6709\u516c\u5171\u8d44\u6e90\uff0c\u5982CSS\u3001JavaScript\u548c\u56fe\u50cf\u7b49\u3002\u8fd9\u4e9b\u8d44\u6e90\u53ef\u4ee5\u76f4\u63a5\u88abWeb\u670d\u52a1\u5668\u548c\u6d4f\u89c8\u5668\u8bbf\u95ee\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>resources\u76ee\u5f55\uff1a<\/li>\n<\/ul>\n\n\n\n<p>resources\u76ee\u5f55\u5305\u542b\u5e94\u7528\u7a0b\u5e8f\u7684\u6240\u6709\u975ePHP\u8d44\u6e90\uff0c\u5982\u89c6\u56fe\u6587\u4ef6\u3001JavaScript\u548cCSS\u6587\u4ef6\u3001\u8bed\u8a00\u7ffb\u8bd1\u6587\u4ef6\u7b49\u3002\u8fd9\u4e9b\u8d44\u6e90\u901a\u5e38\u9700\u8981\u5728\u5e94\u7528\u7a0b\u5e8f\u7684PHP\u4ee3\u7801\u4e2d\u4f7f\u7528\uff0c\u4ee5\u5448\u73b0HTML\u9875\u9762\u548c\u6570\u636e\u7b49\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>routes\u76ee\u5f55\uff1a<\/li>\n<\/ul>\n\n\n\n<p>routes\u76ee\u5f55\u5305\u542b\u6240\u6709\u5e94\u7528\u7a0b\u5e8f\u7684\u8def\u7531\u5b9a\u4e49\uff0c\u5373\u5982\u4f55\u5c06HTTP\u8bf7\u6c42\u6620\u5c04\u5230\u63a7\u5236\u5668\u548c\u52a8\u4f5c\u3002\u8def\u7531\u53ef\u4ee5\u5b9a\u4e49HTTP\u8bf7\u6c42\u65b9\u6cd5\u3001URL\u8def\u5f84\u548c\u8def\u7531\u53c2\u6570\u7b49\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>storage\u76ee\u5f55\uff1a<\/li>\n<\/ul>\n\n\n\n<p>storage\u76ee\u5f55\u5305\u542b\u5e94\u7528\u7a0b\u5e8f\u7684\u6240\u6709\u6301\u4e45\u5316\u6570\u636e\uff0c\u5982\u65e5\u5fd7\u6587\u4ef6\u3001\u7f13\u5b58\u6587\u4ef6\u3001\u4f1a\u8bdd\u6570\u636e\u3001\u4e0a\u4f20\u6587\u4ef6\u548c\u6846\u67b6\u751f\u6210\u7684\u6587\u4ef6\u7b49\u3002\u8fd9\u4e9b\u6570\u636e\u5e94\u8be5\u662f\u53ef\u5199\u7684\uff0c\u5e76\u4e14\u4e0d\u5e94\u8be5\u88abWeb\u670d\u52a1\u5668\u76f4\u63a5\u8bbf\u95ee\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>tests\u76ee\u5f55\uff1a<\/li>\n<\/ul>\n\n\n\n<p>tests\u76ee\u5f55\u5305\u542b\u5e94\u7528\u7a0b\u5e8f\u7684\u6240\u6709\u6d4b\u8bd5\u4ee3\u7801\uff0c\u5982\u529f\u80fd\u6d4b\u8bd5\u3001\u5355\u5143\u6d4b\u8bd5\u548c\u96c6\u6210\u6d4b\u8bd5\u7b49\u3002\u8fd9\u4e9b\u6d4b\u8bd5\u4ee3\u7801\u53ef\u4ee5\u4f7f\u7528PHPUnit\u6d4b\u8bd5\u6846\u67b6\u8fd0\u884c\uff0c\u5e76\u53ef\u7528\u4e8e\u786e\u4fdd\u5e94\u7528\u7a0b\u5e8f\u7684\u8d28\u91cf\u548c\u6b63\u786e\u6027\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>vendor\u76ee\u5f55\uff1a<\/li>\n<\/ul>\n\n\n\n<p>vendor\u76ee\u5f55\u5305\u542b\u6240\u6709\u5e94\u7528\u7a0b\u5e8f\u7684\u7b2c\u4e09\u65b9\u4f9d\u8d56\u9879\u548c\u5e93\uff0c\u8fd9\u4e9b\u4f9d\u8d56\u9879\u901a\u5e38\u7531Composer\u7ba1\u7406\u548c\u5b89\u88c5\u3002<\/p>\n\n\n\n<p>\u8fd9\u4e9b\u662fLaravel\u6846\u67b6\u7684\u57fa\u672c<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u7ee7\u7eed<\/p>\n\n\n\n<p>\u76ee\u5f55\u7ed3\u6784\u3002\u719f\u6089\u548c\u7406\u89e3\u8fd9\u4e9b\u76ee\u5f55\u7ed3\u6784\u53ef\u4ee5\u5e2e\u52a9\u5f00\u53d1\u8005\u66f4\u597d\u5730\u7ec4\u7ec7\u548c\u7ba1\u7406\u5e94\u7528\u7a0b\u5e8f\u7684\u4ee3\u7801\u548c\u8d44\u6e90\uff0c\u4ece\u800c\u63d0\u9ad8\u5f00\u53d1\u6548\u7387\u548c\u4ee3\u7801\u8d28\u91cf\u3002<\/p>\n\n\n\n<p>\u9664\u4e86\u4ee5\u4e0a\u8fd9\u4e9b\u76ee\u5f55\u4e4b\u5916\uff0cLaravel\u6846\u67b6\u8fd8\u5305\u542b\u5176\u4ed6\u4e00\u4e9b\u91cd\u8981\u7684\u6587\u4ef6\u548c\u76ee\u5f55\uff0c\u5982.env\u6587\u4ef6\u3001artisan\u547d\u4ee4\u884c\u5de5\u5177\u548ccomposer.json\u6587\u4ef6\u7b49\u3002\u5176\u4e2d\uff0c.env\u6587\u4ef6\u7528\u4e8e\u5b58\u50a8\u5e94\u7528\u7a0b\u5e8f\u7684\u73af\u5883\u53d8\u91cf\u548c\u8bbe\u7f6e\uff0cartisan\u547d\u4ee4\u884c\u5de5\u5177\u7528\u4e8e\u7ba1\u7406\u5e94\u7528\u7a0b\u5e8f\u7684\u5404\u79cd\u4efb\u52a1\u548c\u529f\u80fd\uff0ccomposer.json\u6587\u4ef6\u7528\u4e8e\u6307\u5b9a\u5e94\u7528\u7a0b\u5e8f\u7684\u4f9d\u8d56\u9879\u548c\u5e93\u7b49\u3002<\/p>\n\n\n\n<p>\u603b\u4e4b\uff0cLaravel\u6846\u67b6\u7684\u76ee\u5f55\u7ed3\u6784\u5177\u6709\u826f\u597d\u7684\u7ec4\u7ec7\u6027\u548c\u53ef\u6269\u5c55\u6027\uff0c\u4f7f\u5f97\u5f00\u53d1\u8005\u53ef\u4ee5\u66f4\u8f7b\u677e\u5730\u5f00\u53d1\u548c\u7ef4\u62a4\u590d\u6742\u7684Web\u5e94\u7528\u7a0b\u5e8f\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u7ee7\u7eed<\/p>\n\n\n\n<p>\u9664\u4e86\u9ed8\u8ba4\u7684\u76ee\u5f55\u7ed3\u6784\u4e4b\u5916\uff0cLaravel\u6846\u67b6\u8fd8\u652f\u6301\u81ea\u5b9a\u4e49\u76ee\u5f55\u7ed3\u6784\uff0c\u4ee5\u6ee1\u8db3\u4e0d\u540c\u5f00\u53d1\u8005\u7684\u9700\u6c42\u3002\u5f00\u53d1\u8005\u53ef\u4ee5\u901a\u8fc7\u4fee\u6539\u914d\u7f6e\u6587\u4ef6\u6216\u8005\u4f7f\u7528\u81ea\u5b9a\u4e49\u547d\u540d\u7a7a\u95f4\u7b49\u65b9\u5f0f\u6765\u81ea\u5b9a\u4e49\u76ee\u5f55\u7ed3\u6784\u3002\u4ee5\u4e0b\u662f\u4e00\u4e9b\u81ea\u5b9a\u4e49Laravel\u76ee\u5f55\u7ed3\u6784\u7684\u793a\u4f8b\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5c06\u63a7\u5236\u5668\u653e\u7f6e\u5728app\/Http\/Controllers\/Api\u76ee\u5f55\u4e2d\uff0c\u4ee5\u4fbf\u533a\u5206API\u63a7\u5236\u5668\u548cWeb\u63a7\u5236\u5668\u3002<\/li>\n\n\n\n<li>\u5c06\u89c6\u56fe\u6587\u4ef6\u653e\u7f6e\u5728resources\/views\/admin\u76ee\u5f55\u4e2d\uff0c\u4ee5\u4fbf\u533a\u5206\u7ba1\u7406\u5458\u754c\u9762\u548c\u666e\u901a\u7528\u6237\u754c\u9762\u3002<\/li>\n\n\n\n<li>\u5c06\u6a21\u578b\u653e\u7f6e\u5728app\/Models\u76ee\u5f55\u4e2d\uff0c\u4ee5\u4fbf\u5c06\u5b83\u4eec\u4e0e\u5176\u4ed6\u7c7b\u6587\u4ef6\u5206\u79bb\u3002<\/li>\n\n\n\n<li>\u5c06\u8fc1\u79fb\u6587\u4ef6\u653e\u7f6e\u5728database\/migrations\/tables\u76ee\u5f55\u4e2d\uff0c\u4ee5\u4fbf\u6839\u636e\u8868\u7684\u4e0d\u540c\u6765\u5206\u7ec4\u548c\u7ba1\u7406\u8fc1\u79fb\u6587\u4ef6\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u8fd9\u4e9b\u81ea\u5b9a\u4e49\u76ee\u5f55\u7ed3\u6784\u53ef\u4ee5\u6839\u636e\u5177\u4f53\u9700\u6c42\u8fdb\u884c\u66f4\u6539\u548c\u6269\u5c55\uff0c\u5e76\u4e14\u53ef\u4ee5\u4e0e\u9ed8\u8ba4\u76ee\u5f55\u7ed3\u6784\u5171\u5b58\u3002\u7136\u800c\uff0c\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u8fc7\u5ea6\u81ea\u5b9a\u4e49\u76ee\u5f55\u7ed3\u6784\u53ef\u80fd\u4f1a\u4f7f\u9879\u76ee\u66f4\u52a0\u590d\u6742\u548c\u96be\u4ee5\u7ef4\u62a4\uff0c\u56e0\u6b64\u5efa\u8bae\u5728\u8bbe\u8ba1\u76ee\u5f55\u7ed3\u6784\u65f6\u4fdd\u6301\u7b80\u6d01\u548c\u7edf\u4e00\u6027\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91caMVC\u67b6\u6784\u53ca\u5176\u5728Laravel\u4e2d\u7684\u5b9e\u73b0<\/p>\n\n\n\n<p>MVC\u662f\u4e00\u79cd\u8f6f\u4ef6\u8bbe\u8ba1\u6a21\u5f0f\uff0c\u7528\u4e8e\u5c06\u5e94\u7528\u7a0b\u5e8f\u7684\u4e1a\u52a1\u903b\u8f91\u3001\u7528\u6237\u754c\u9762\u548c\u6570\u636e\u5b58\u50a8\u5206\u79bb\u5f00\u6765\u3002MVC\u4ee3\u8868\u6a21\u578b\uff08Model\uff09\u3001\u89c6\u56fe\uff08View\uff09\u548c\u63a7\u5236\u5668\uff08Controller\uff09\uff0c\u6bcf\u4e2a\u90e8\u5206\u90fd\u5177\u6709\u4e0d\u540c\u7684\u529f\u80fd\u548c\u8d23\u4efb\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6a21\u578b\uff08Model\uff09\uff1a<\/li>\n<\/ul>\n\n\n\n<p>\u6a21\u578b\u8868\u793a\u5e94\u7528\u7a0b\u5e8f\u7684\u6570\u636e\u5b58\u50a8\u5c42\u3002\u5b83\u5904\u7406\u6570\u636e\u7684\u8bbf\u95ee\u3001\u66f4\u65b0\u548c\u9a8c\u8bc1\u7b49\u64cd\u4f5c\uff0c\u5e76\u5c06\u6570\u636e\u4f20\u9012\u7ed9\u63a7\u5236\u5668\u6216\u89c6\u56fe\u8fdb\u884c\u5904\u7406\u3002\u6a21\u578b\u901a\u5e38\u5305\u542b\u4e0e\u6570\u636e\u5e93\u6216\u5176\u4ed6\u6570\u636e\u5b58\u50a8\u7cfb\u7edf\u7684\u4ea4\u4e92\u903b\u8f91\uff0c\u5e76\u5177\u6709\u826f\u597d\u7684\u5c01\u88c5\u6027\u548c\u53ef\u91cd\u7528\u6027\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u89c6\u56fe\uff08View\uff09\uff1a<\/li>\n<\/ul>\n\n\n\n<p>\u89c6\u56fe\u8868\u793a\u5e94\u7528\u7a0b\u5e8f\u7684\u7528\u6237\u754c\u9762\u5c42\u3002\u5b83\u8d1f\u8d23\u5448\u73b0\u6570\u636e\u5e76\u4e0e\u7528\u6237\u8fdb\u884c\u4ea4\u4e92\uff0c\u901a\u5e38\u7531HTML\u3001CSS\u548cJavaScript\u7b49\u6280\u672f\u6765\u6784\u5efa\u3002\u89c6\u56fe\u901a\u5e38\u63a5\u6536\u4ece\u63a7\u5236\u5668\u4f20\u9012\u8fc7\u6765\u7684\u6570\u636e\uff0c\u5e76\u5c06\u5176\u5448\u73b0\u4e3a\u53ef\u89c6\u5316\u7684\u754c\u9762\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u63a7\u5236\u5668\uff08Controller\uff09\uff1a<\/li>\n<\/ul>\n\n\n\n<p>\u63a7\u5236\u5668\u5145\u5f53\u6a21\u578b\u548c\u89c6\u56fe\u4e4b\u95f4\u7684\u4e2d\u4ecb\uff0c\u5904\u7406HTTP\u8bf7\u6c42\u548c\u54cd\u5e94\uff0c\u5e76\u8c03\u7528\u6a21\u578b\u548c\u89c6\u56fe\u6765\u6267\u884c\u4e1a\u52a1\u903b\u8f91\u3002\u63a7\u5236\u5668\u901a\u5e38\u5305\u542b\u4ece\u89c6\u56fe\u4e2d\u63a5\u6536\u548c\u9a8c\u8bc1\u7528\u6237\u8f93\u5165\u7684\u4ee3\u7801\uff0c\u5e76\u4f7f\u7528\u6a21\u578b\u6765\u6267\u884c\u6570\u636e\u5e93\u64cd\u4f5c\u3002<\/p>\n\n\n\n<p>Laravel\u6846\u67b6\u5b9e\u73b0\u4e86MVC\u67b6\u6784\uff0c\u4f7f\u5f97\u5f00\u53d1\u8005\u53ef\u4ee5\u66f4\u8f7b\u677e\u5730\u5f00\u53d1\u548c\u7ef4\u62a4\u590d\u6742\u7684Web\u5e94\u7528\u7a0b\u5e8f\u3002\u4ee5\u4e0b\u662fLaravel\u4e2dMVC\u67b6\u6784\u7684\u5b9e\u73b0\u65b9\u5f0f\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6a21\u578b\uff08Model\uff09\uff1a<\/li>\n<\/ul>\n\n\n\n<p>Laravel\u7684\u6a21\u578b\u4f7f\u7528Eloquent ORM\uff0c\u5b83\u662f\u4e00\u79cd\u4f18\u96c5\u4e14\u7b80\u5355\u7684\u6570\u636e\u5e93\u8bbf\u95ee\u65b9\u5f0f\uff0c\u53ef\u4ee5\u8f7b\u677e\u5730\u8bbf\u95ee\u548c\u64cd\u4f5c\u6570\u636e\u5e93\u8868\u548c\u6570\u636e\u3002\u5f00\u53d1\u8005\u53ef\u4ee5\u901a\u8fc7\u5b9a\u4e49Eloquent\u6a21\u578b\u6765\u521b\u5efa\u548c\u7ba1\u7406\u5e94\u7528\u7a0b\u5e8f\u7684\u6570\u636e\u5e93\u7ed3\u6784\uff0c\u5e76\u4f7f\u7528\u6a21\u578b\u6765\u6267\u884c\u5404\u79cd\u6570\u636e\u5e93\u64cd\u4f5c\uff0c\u5982\u521b\u5efa\u3001\u8bfb\u53d6\u3001\u66f4\u65b0\u548c\u5220\u9664\u6570\u636e\u7b49\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u89c6\u56fe\uff08View\uff09\uff1a<\/li>\n<\/ul>\n\n\n\n<p>Laravel\u7684\u89c6\u56fe\u4f7f\u7528Blade\u6a21\u677f\u5f15\u64ce\uff0c\u5b83\u63d0\u4f9b\u4e86\u4e00\u79cd\u7b80\u5355\u3001\u7075\u6d3b\u548c\u6613\u4e8e\u5b66\u4e60\u7684\u6a21\u677f\u8bed\u8a00\uff0c\u53ef\u4ee5\u5feb\u901f\u521b\u5efa\u548c\u7ba1\u7406HTML\u6a21\u677f\u3002\u5f00\u53d1\u8005\u53ef\u4ee5\u4f7f\u7528Blade\u6a21\u677f\u6765\u5448\u73b0\u6570\u636e\u548c\u6784\u5efaWeb\u9875\u9762\uff0c\u5e76\u901a\u8fc7\u4f7f\u7528\u5e03\u5c40\u3001\u7ec4\u4ef6\u548c\u5305\u542b\u7b49\u6280\u672f\u6765\u590d\u7528\u548c\u7ba1\u7406\u6a21\u677f\u4ee3\u7801\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u63a7\u5236\u5668\uff08Controller\uff09\uff1a<\/li>\n<\/ul>\n\n\n\n<p>Laravel\u7684\u63a7\u5236\u5668\u4f7f\u7528\u8def\u7531\u6765\u5c06HTTP\u8bf7\u6c42\u8def\u7531\u5230\u76f8\u5e94\u7684\u63a7\u5236\u5668\u52a8\u4f5c\u4e2d\u3002\u63a7\u5236\u5668\u52a8\u4f5c\u662f\u4e00\u4e2a\u5904\u7406HTTP\u8bf7\u6c42\u5e76\u8fd4\u56de\u54cd\u5e94\u7684\u65b9\u6cd5\uff0c\u901a\u5e38\u4f1a\u4f7f\u7528\u6a21\u578b\u548c\u89c6\u56fe\u6765\u6267\u884c\u4e1a\u52a1\u903b\u8f91\u548c\u5448\u73b0\u6570\u636e\u3002\u5f00\u53d1\u8005\u53ef\u4ee5\u901a\u8fc7\u5b9a\u4e49\u63a7\u5236\u5668\u6765\u5904\u7406\u5404\u79cdHTTP\u8bf7\u6c42\uff0c\u5e76\u4f7f\u7528\u8def\u7531\u6765\u5c06\u8bf7\u6c42\u6620\u5c04\u5230\u76f8\u5e94\u7684\u63a7\u5236\u5668\u52a8\u4f5c\u4e2d\u3002<\/p>\n\n\n\n<p>\u603b\u4e4b\uff0cMVC\u67b6\u6784\u662fLaravel\u6846\u67b6\u7684\u6838\u5fc3\u90e8\u5206\uff0c\u5b83\u4f7f\u5f97\u5e94\u7528\u7a0b\u5e8f\u7684\u4e0d\u540c\u90e8\u5206\u53ef\u4ee5\u72ec\u7acb\u53d1\u5c55\u3001\u9ad8\u5ea6\u7ec4\u5408\u548c\u6613\u4e8e\u7ef4\u62a4\uff0c\u4ece\u800c\u63d0\u9ad8\u5f00\u53d1\u6548\u7387\u548c<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91caLaravel\u8bf7\u6c42\u751f\u547d\u5468\u671f<\/p>\n\n\n\n<p>Laravel\u7684\u8bf7\u6c42\u751f\u547d\u5468\u671f\u5305\u542b\u4e86\u4eceHTTP\u8bf7\u6c42\u5230\u54cd\u5e94\u7684\u6574\u4e2a\u8fc7\u7a0b\uff0c\u6d89\u53ca\u5230\u5404\u79cd\u7ec4\u4ef6\u548c\u670d\u52a1\u7684\u534f\u540c\u5de5\u4f5c\u3002\u4ee5\u4e0b\u662fLaravel\u8bf7\u6c42\u751f\u547d\u5468\u671f\u7684\u8be6\u7ec6\u8bf4\u660e\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u63a5\u6536HTTP\u8bf7\u6c42\uff1a<\/li>\n<\/ol>\n\n\n\n<p>\u5f53\u7528\u6237\u53d1\u9001HTTP\u8bf7\u6c42\u5230Laravel\u5e94\u7528\u7a0b\u5e8f\u65f6\uff0c\u8be5\u8bf7\u6c42\u4f1a\u9996\u5148\u88abWeb\u670d\u52a1\u5668\uff08\u5982Apache\u6216Nginx\uff09\u63a5\u6536\u548c\u5904\u7406\u3002Web\u670d\u52a1\u5668\u4f1a\u5c06\u8bf7\u6c42\u8f6c\u53d1\u5230Laravel\u5e94\u7528\u7a0b\u5e8f\u7684public\/index.php\u6587\u4ef6\uff0c\u8fd9\u662fLaravel\u5e94\u7528\u7a0b\u5e8f\u7684\u5165\u53e3\u6587\u4ef6\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u542f\u52a8\u5e94\u7528\u7a0b\u5e8f\uff1a<\/li>\n<\/ol>\n\n\n\n<p>public\/index.php\u6587\u4ef6\u4f1a\u542f\u52a8Laravel\u5e94\u7528\u7a0b\u5e8f\uff0c\u5e76\u52a0\u8f7d\u5fc5\u8981\u7684\u7ec4\u4ef6\u548c\u670d\u52a1\u3002\u8fd9\u5305\u62ec\u52a0\u8f7dComposer\u81ea\u52a8\u52a0\u8f7d\u5668\u3001\u542f\u52a8\u5f15\u5bfc\u3001\u6ce8\u518c\u670d\u52a1\u63d0\u4f9b\u8005\u7b49\u6b65\u9aa4\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u8def\u7531\u5904\u7406\uff1a<\/li>\n<\/ol>\n\n\n\n<p>Laravel\u7684\u8def\u7531\u7cfb\u7edf\u4f1a\u5c06HTTP\u8bf7\u6c42\u6620\u5c04\u5230\u76f8\u5e94\u7684\u63a7\u5236\u5668\u548c\u52a8\u4f5c\u4e2d\u3002\u8def\u7531\u7cfb\u7edf\u4f1a\u67e5\u627e\u4e0e\u8bf7\u6c42URL\u5339\u914d\u7684\u8def\u7531\u5b9a\u4e49\uff0c\u5e76\u5c06\u8bf7\u6c42\u8f6c\u53d1\u5230\u76f8\u5e94\u7684\u63a7\u5236\u5668\u52a8\u4f5c\u4e2d\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u6267\u884c\u63a7\u5236\u5668\uff1a<\/li>\n<\/ol>\n\n\n\n<p>\u63a7\u5236\u5668\u8d1f\u8d23\u5904\u7406HTTP\u8bf7\u6c42\uff0c\u5e76\u6267\u884c\u76f8\u5e94\u7684\u4e1a\u52a1\u903b\u8f91\u3002\u63a7\u5236\u5668\u52a8\u4f5c\u53ef\u4ee5\u8bfb\u53d6\u3001\u4fee\u6539\u6216\u5220\u9664\u6570\u636e\u5e93\u4e2d\u7684\u6570\u636e\uff0c\u5e76\u5c06\u5176\u4f20\u9012\u7ed9\u89c6\u56fe\u8fdb\u884c\u5448\u73b0\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"5\">\n<li>\u89c6\u56fe\u5904\u7406\uff1a<\/li>\n<\/ol>\n\n\n\n<p>\u89c6\u56fe\u8d1f\u8d23\u5c06\u63a7\u5236\u5668\u8fd4\u56de\u7684\u6570\u636e\u5448\u73b0\u4e3aHTML\u9875\u9762\u3002\u89c6\u56fe\u4f7f\u7528Blade\u6a21\u677f\u5f15\u64ce\uff0c\u53ef\u4ee5\u5feb\u901f\u521b\u5efa\u548c\u7ba1\u7406HTML\u6a21\u677f\uff0c\u5e76\u652f\u6301\u5e03\u5c40\u3001\u7ec4\u4ef6\u548c\u5305\u542b\u7b49\u529f\u80fd\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"6\">\n<li>\u54cd\u5e94\u751f\u6210\uff1a<\/li>\n<\/ol>\n\n\n\n<p>\u4e00\u65e6\u89c6\u56fe\u751f\u6210HTML\u9875\u9762\uff0cLaravel\u5c06\u628a\u8be5\u9875\u9762\u8f6c\u6362\u4e3aHTTP\u54cd\u5e94\uff0c\u5e76\u5c06\u5176\u8fd4\u56de\u7ed9\u6d4f\u89c8\u5668\u3002Laravel\u652f\u6301\u5404\u79cd\u54cd\u5e94\u7c7b\u578b\uff0c\u5305\u62ecHTML\u3001JSON\u548c\u6587\u4ef6\u4e0b\u8f7d\u7b49\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"7\">\n<li>\u8bf7\u6c42\u7ed3\u675f\uff1a<\/li>\n<\/ol>\n\n\n\n<p>\u4e00\u65e6\u54cd\u5e94\u8fd4\u56de\u7ed9\u6d4f\u89c8\u5668\uff0cLaravel\u5e94\u7528\u7a0b\u5e8f\u7684\u8bf7\u6c42\u5904\u7406\u8fc7\u7a0b\u5c31\u7ed3\u675f\u4e86\u3002\u5728\u8bf7\u6c42\u7ed3\u675f\u65f6\uff0cLaravel\u4f1a\u6e05\u7406\u4efb\u4f55\u672a\u4f7f\u7528\u7684\u8d44\u6e90\uff0c\u5e76\u6267\u884c\u4efb\u4f55\u5fc5\u8981\u7684\u7ef4\u62a4\u64cd\u4f5c\uff0c\u4ee5\u4fdd\u6301\u5e94\u7528\u7a0b\u5e8f\u7684\u9ad8\u6548\u6027\u548c\u7a33\u5b9a\u6027\u3002<\/p>\n\n\n\n<p>\u8fd9\u4e9b\u662fLaravel\u8bf7\u6c42\u751f\u547d\u5468\u671f\u7684\u57fa\u672c\u6b65\u9aa4\u3002\u5728\u5f00\u53d1Laravel\u5e94\u7528\u7a0b\u5e8f\u65f6\uff0c\u4e86\u89e3\u8fd9\u4e9b\u6b65\u9aa4\u548c\u76f8\u5173\u7ec4\u4ef6\u7684\u5de5\u4f5c\u539f\u7406\u975e\u5e38\u91cd\u8981\uff0c\u53ef\u4ee5\u5e2e\u52a9\u5f00\u53d1\u8005\u66f4\u597d\u5730\u7406\u89e3\u5e94\u7528\u7a0b\u5e8f\u7684\u8fd0\u4f5c\u673a\u5236\uff0c\u4ece\u800c\u66f4\u8f7b\u677e\u5730\u5f00\u53d1\u548c\u7ef4\u62a4\u590d\u6742\u7684Web\u5e94\u7528\u7a0b\u5e8f\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91ca\u8def\u7531\u7684\u57fa\u672c\u6982\u5ff5\u4e0e\u5b9a\u4e49<\/p>\n\n\n\n<p>\u8def\u7531\u662fWeb\u5e94\u7528\u7a0b\u5e8f\u4e2d\u7684\u4e00\u79cd\u673a\u5236\uff0c\u7528\u4e8e\u5c06HTTP\u8bf7\u6c42\u6620\u5c04\u5230\u76f8\u5e94\u7684\u5904\u7406\u7a0b\u5e8f\u6216\u63a7\u5236\u5668\u52a8\u4f5c\u4e2d\u3002\u8def\u7531\u63d0\u4f9b\u4e86\u4e00\u79cd\u5c06\u8bf7\u6c42URL\u4e0e\u7279\u5b9a\u4ee3\u7801\u903b\u8f91\u76f8\u5173\u8054\u7684\u65b9\u5f0f\uff0c\u4f7f\u5f97\u5e94\u7528\u7a0b\u5e8f\u7684\u5404\u4e2a\u90e8\u5206\u53ef\u4ee5\u89e3\u8026\u5e76\u4e92\u4e0d\u5e72\u6270\u3002\u5728Laravel\u6846\u67b6\u4e2d\uff0c\u8def\u7531\u662f\u5e94\u7528\u7a0b\u5e8f\u7684\u6838\u5fc3\u90e8\u5206\u4e4b\u4e00\uff0c\u7528\u4e8e\u5c06HTTP\u8bf7\u6c42\u8f6c\u53d1\u5230\u76f8\u5e94\u7684\u63a7\u5236\u5668\u548c\u52a8\u4f5c\u4e2d\u3002\u4ee5\u4e0b\u662f\u8def\u7531\u7684\u57fa\u672c\u6982\u5ff5\u548c\u5b9a\u4e49\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u8def\u7531\u5b9a\u4e49<\/li>\n<\/ol>\n\n\n\n<p>\u8def\u7531\u5b9a\u4e49\u662f\u4e00\u79cd\u5c06HTTP\u8bf7\u6c42URL\u4e0e\u5904\u7406\u7a0b\u5e8f\u6216\u63a7\u5236\u5668\u52a8\u4f5c\u76f8\u5173\u8054\u7684\u673a\u5236\u3002\u5728Laravel\u4e2d\uff0c\u8def\u7531\u5b9a\u4e49\u901a\u5e38\u4ee5Route::\u5f00\u5934\uff0c\u5e76\u5b9a\u4e49\u4e86HTTP\u8bf7\u6c42\u65b9\u6cd5\u3001URL\u8def\u5f84\u548c\u5904\u7406\u7a0b\u5e8f\u6216\u63a7\u5236\u5668\u52a8\u4f5c\u7b49\u4fe1\u606f\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u8def\u7531\u53c2\u6570<\/li>\n<\/ol>\n\n\n\n<p>\u8def\u7531\u53c2\u6570\u662f\u4e00\u79cd\u5728URL\u8def\u5f84\u4e2d\u5305\u542b\u53d8\u91cf\u7684\u673a\u5236\uff0c\u4f7f\u5f97\u76f8\u540c\u7684\u8def\u7531\u5b9a\u4e49\u53ef\u4ee5\u9002\u7528\u4e8e\u4e0d\u540c\u7684URL\u8def\u5f84\u3002\u5728Laravel\u4e2d\uff0c\u8def\u7531\u53c2\u6570\u901a\u5e38\u4f7f\u7528{parameter_name}\u8bed\u6cd5\u6765\u5b9a\u4e49\uff0c\u5176\u4e2dparameter_name\u662f\u53d8\u91cf\u540d\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u8def\u7531\u7ec4<\/li>\n<\/ol>\n\n\n\n<p>\u8def\u7531\u7ec4\u662f\u4e00\u79cd\u5c06\u591a\u4e2a\u8def\u7531\u5b9a\u4e49\u7ec4\u7ec7\u5728\u4e00\u8d77\u7684\u673a\u5236\uff0c\u4f7f\u5f97\u5b83\u4eec\u53ef\u4ee5\u5171\u4eab\u76f8\u540c\u7684\u5c5e\u6027\u548c\u4e2d\u95f4\u4ef6\u3002\u5728Laravel\u4e2d\uff0c\u8def\u7531\u7ec4\u901a\u5e38\u4f7f\u7528Route::group()\u65b9\u6cd5\u6765\u5b9a\u4e49\uff0c\u5e76\u53ef\u4ee5\u8bbe\u7f6e\u8def\u7531\u524d\u7f00\u3001\u547d\u540d\u7a7a\u95f4\u3001\u4e2d\u95f4\u4ef6\u548c\u57df\u540d\u7b49\u5c5e\u6027\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u8def\u7531\u547d\u540d<\/li>\n<\/ol>\n\n\n\n<p>\u8def\u7531\u547d\u540d\u662f\u4e00\u79cd\u4e3a\u8def\u7531\u5b9a\u4e49\u5206\u914d\u53ef\u8bfb\u6027\u9ad8\u4e14\u552f\u4e00\u7684\u540d\u79f0\u7684\u673a\u5236\uff0c\u4f7f\u5f97\u53ef\u4ee5\u901a\u8fc7\u540d\u79f0\u5f15\u7528\u8def\u7531\u5b9a\u4e49\uff0c\u800c\u4e0d\u662fURL\u8def\u5f84\u6216\u63a7\u5236\u5668\u52a8\u4f5c\u3002\u5728Laravel\u4e2d\uff0c\u8def\u7531\u547d\u540d\u901a\u5e38\u4f7f\u7528name()\u65b9\u6cd5\u6765\u5b9a\u4e49\uff0c\u5e76\u53ef\u4ee5\u5728\u5e94\u7528\u7a0b\u5e8f\u4e2d\u901a\u8fc7\u8def\u7531\u540d\u79f0\u6765\u751f\u6210URL\u6216\u8fdb\u884c\u5176\u4ed6\u64cd\u4f5c\u3002<\/p>\n\n\n\n<p>\u603b\u4e4b\uff0c\u8def\u7531\u662fWeb\u5e94\u7528\u7a0b\u5e8f\u4e2d\u7684\u4e00\u79cd\u6838\u5fc3\u673a\u5236\uff0c\u5b83\u63d0\u4f9b\u4e86\u4e00\u79cd\u5c06HTTP\u8bf7\u6c42\u6620\u5c04\u5230\u76f8\u5e94\u5904\u7406\u7a0b\u5e8f\u6216\u63a7\u5236\u5668\u52a8\u4f5c\u7684\u65b9\u5f0f\uff0c\u4f7f\u5f97\u5e94\u7528\u7a0b\u5e8f\u7684\u5404\u4e2a\u90e8\u5206\u53ef\u4ee5\u9ad8\u5ea6\u89e3\u8026\u5e76\u4e92\u4e0d\u5e72\u6270\u3002Laravel\u6846\u67b6\u63d0\u4f9b\u4e86\u4e30\u5bcc\u7684\u8def\u7531\u5b9a\u4e49\u548c\u529f\u80fd\uff0c\u4f7f\u5f97\u5f00\u53d1\u8005\u53ef\u4ee5\u8f7b\u677e\u5730\u6784\u5efa\u548c\u7ba1\u7406\u590d\u6742\u7684Web\u5e94\u7528\u7a0b\u5e8f\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u89e3\u91ca\u5982\u4f55\u521b\u5efa\u63a7\u5236\u5668<\/p>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u63a7\u5236\u5668\u662f\u5904\u7406HTTP\u8bf7\u6c42\u548c\u6267\u884c\u4e1a\u52a1\u903b\u8f91\u7684\u5173\u952e\u7ec4\u4ef6\u4e4b\u4e00\u3002\u63a7\u5236\u5668\u901a\u5e38\u5305\u542b\u4e00\u4e9b\u52a8\u4f5c\uff08Action\uff09\uff0c\u6bcf\u4e2a\u52a8\u4f5c\u5bf9\u5e94\u4e8e\u5904\u7406HTTP\u8bf7\u6c42\u7684\u4e0d\u540c\u64cd\u4f5c\uff0c\u4f8b\u5982\u8bfb\u53d6\u3001\u66f4\u65b0\u6216\u5220\u9664\u6570\u636e\u3002\u4ee5\u4e0b\u662f\u521b\u5efa\u63a7\u5236\u5668\u7684\u57fa\u672c\u6b65\u9aa4\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u521b\u5efa\u63a7\u5236\u5668\u6587\u4ef6<\/li>\n<\/ol>\n\n\n\n<p>\u8981\u521b\u5efa\u63a7\u5236\u5668\uff0c\u53ef\u4ee5\u4f7f\u7528Artisan\u547d\u4ee4\u884c\u5de5\u5177\u3002\u5728\u547d\u4ee4\u884c\u4e2d\uff0c\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u53ef\u4ee5\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u63a7\u5236\u5668\u6587\u4ef6\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">goCopy code<code>php artisan make:controller MyController\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u547d\u4ee4\u5c06\u5728app\/Http\/Controllers\u76ee\u5f55\u4e2d\u521b\u5efa\u4e00\u4e2a\u540d\u4e3aMyController\u7684\u65b0\u63a7\u5236\u5668\u6587\u4ef6\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u7f16\u5199\u63a7\u5236\u5668\u4ee3\u7801<\/li>\n<\/ol>\n\n\n\n<p>\u5728\u63a7\u5236\u5668\u6587\u4ef6\u4e2d\uff0c\u53ef\u4ee5\u5b9a\u4e49\u4e00\u4e2a\u6216\u591a\u4e2a\u63a7\u5236\u5668\u52a8\u4f5c\u3002\u63a7\u5236\u5668\u52a8\u4f5c\u662f\u4e00\u4e2a\u516c\u5171\u65b9\u6cd5\uff0c\u5b83\u5904\u7406HTTP\u8bf7\u6c42\u5e76\u8fd4\u56de\u54cd\u5e94\u3002\u4ee5\u4e0b\u662f\u4e00\u4e2a\u7b80\u5355\u7684\u63a7\u5236\u5668\u52a8\u4f5c\u793a\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>public function index()\n{\n    $users = User::all();\n    return view('users.index', ['users' =&gt; $users]);\n}\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u63a7\u5236\u5668\u52a8\u4f5c\u8bfb\u53d6\u6240\u6709\u7528\u6237\u8bb0\u5f55\uff0c\u5e76\u5c06\u5b83\u4eec\u4f20\u9012\u7ed9\u540d\u4e3ausers.index\u7684\u89c6\u56fe\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u6dfb\u52a0\u8def\u7531<\/li>\n<\/ol>\n\n\n\n<p>\u8981\u4f7f\u63a7\u5236\u5668\u52a8\u4f5c\u53ef\u7528\u4e8e\u5904\u7406HTTP\u8bf7\u6c42\uff0c\u9700\u8981\u5c06\u5b83\u4eec\u6dfb\u52a0\u5230\u8def\u7531\u5b9a\u4e49\u4e2d\u3002\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528Route::get()\u3001Route::post()\u7b49\u65b9\u6cd5\u6765\u5b9a\u4e49\u8def\u7531\uff0c\u5e76\u5c06\u8def\u7531\u4e0e\u76f8\u5e94\u7684\u63a7\u5236\u5668\u52a8\u4f5c\u5173\u8054\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>Route::get('\/users', 'MyController@index');\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u8def\u7531\u5c06GET\u8bf7\u6c42\u6620\u5c04\u5230MyController\u63a7\u5236\u5668\u7684index()\u65b9\u6cd5\u4e2d\uff0c\u5e76\u5448\u73b0\u540d\u4e3ausers.index\u7684\u89c6\u56fe\u3002<\/p>\n\n\n\n<p>\u603b\u4e4b\uff0c\u521b\u5efa\u63a7\u5236\u5668\u662fLaravel\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u7684\u5173\u952e\u90e8\u5206\u4e4b\u4e00\u3002\u901a\u8fc7\u5b9a\u4e49\u63a7\u5236\u5668\u548c\u63a7\u5236\u5668\u52a8\u4f5c\uff0c\u53ef\u4ee5\u5904\u7406HTTP\u8bf7\u6c42\u5e76\u6267\u884c\u4e1a\u52a1\u903b\u8f91\u3002\u5728\u5f00\u53d1Laravel\u5e94\u7528\u7a0b\u5e8f\u65f6\uff0c\u5efa\u8bae\u4f7f\u7528Artisan\u547d\u4ee4\u884c\u5de5\u5177\u6765\u521b\u5efa\u63a7\u5236\u5668\u6587\u4ef6\uff0c\u5e76\u4f7f\u7528\u8def\u7531\u5b9a\u4e49\u5c06\u63a7\u5236\u5668\u52a8\u4f5c\u4e0eHTTP\u8bf7\u6c42\u5173\u8054\u8d77\u6765\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91ca\u63a7\u5236\u5668\u4e0e\u8def\u7531\u4e4b\u95f4\u7684\u5173\u8054<\/p>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u63a7\u5236\u5668\u548c\u8def\u7531\u4e4b\u95f4\u6709\u7740\u7d27\u5bc6\u7684\u5173\u8054\u3002\u63a7\u5236\u5668\u8d1f\u8d23\u5904\u7406HTTP\u8bf7\u6c42\u5e76\u6267\u884c\u76f8\u5e94\u7684\u4e1a\u52a1\u903b\u8f91\uff0c\u800c\u8def\u7531\u8d1f\u8d23\u5c06HTTP\u8bf7\u6c42\u6620\u5c04\u5230\u76f8\u5e94\u7684\u63a7\u5236\u5668\u52a8\u4f5c\u4e2d\u3002\u4ee5\u4e0b\u662f\u63a7\u5236\u5668\u548c\u8def\u7531\u4e4b\u95f4\u7684\u5173\u8054\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u8def\u7531\u5b9a\u4e49<\/li>\n<\/ol>\n\n\n\n<p>\u8def\u7531\u5b9a\u4e49\u662f\u4e00\u79cd\u5c06HTTP\u8bf7\u6c42URL\u4e0e\u76f8\u5e94\u7684\u63a7\u5236\u5668\u52a8\u4f5c\u76f8\u5173\u8054\u7684\u673a\u5236\u3002\u5728Laravel\u4e2d\uff0c\u8def\u7531\u5b9a\u4e49\u901a\u5e38\u4ee5Route::\u5f00\u5934\uff0c\u5e76\u5b9a\u4e49\u4e86HTTP\u8bf7\u6c42\u65b9\u6cd5\u3001URL\u8def\u5f84\u548c\u63a7\u5236\u5668\u52a8\u4f5c\u7b49\u4fe1\u606f\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>Route::get('\/users', 'UserController@index');\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u8def\u7531\u5b9a\u4e49\u5c06GET\u8bf7\u6c42\u6620\u5c04\u5230UserController\u63a7\u5236\u5668\u7684index()\u65b9\u6cd5\u4e2d\uff0c\u5e76\u5448\u73b0\u540d\u4e3ausers.index\u7684\u89c6\u56fe\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u63a7\u5236\u5668\u52a8\u4f5c<\/li>\n<\/ol>\n\n\n\n<p>\u63a7\u5236\u5668\u52a8\u4f5c\u662f\u63a7\u5236\u5668\u4e2d\u7684\u516c\u5171\u65b9\u6cd5\uff0c\u7528\u4e8e\u5904\u7406HTTP\u8bf7\u6c42\u5e76\u6267\u884c\u76f8\u5e94\u7684\u4e1a\u52a1\u903b\u8f91\u3002\u5728Laravel\u4e2d\uff0c\u63a7\u5236\u5668\u52a8\u4f5c\u901a\u5e38\u8fd4\u56de\u89c6\u56fe\u6216JSON\u54cd\u5e94\uff0c\u5e76\u4f7f\u7528\u6a21\u578b\u6765\u6267\u884c\u6570\u636e\u5e93\u64cd\u4f5c\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>public function index()\n{\n    $users = User::all();\n    return view('users.index', ['users' =&gt; $users]);\n}\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u63a7\u5236\u5668\u52a8\u4f5c\u4f7f\u7528User\u6a21\u578b\u8bfb\u53d6\u6240\u6709\u7528\u6237\u8bb0\u5f55\uff0c\u5e76\u5c06\u5b83\u4eec\u4f20\u9012\u7ed9\u540d\u4e3ausers.index\u7684\u89c6\u56fe\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u63a7\u5236\u5668\u5173\u8054<\/li>\n<\/ol>\n\n\n\n<p>\u4e3a\u4e86\u5c06\u63a7\u5236\u5668\u52a8\u4f5c\u4e0e\u8def\u7531\u5173\u8054\u8d77\u6765\uff0c\u53ef\u4ee5\u5728\u8def\u7531\u5b9a\u4e49\u4e2d\u6307\u5b9a\u63a7\u5236\u5668\u7684\u540d\u79f0\u548c\u52a8\u4f5c\u540d\u79f0\u3002\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528\u63a7\u5236\u5668\u540d\u79f0\u548c\u52a8\u4f5c\u540d\u79f0\u7684\u5b57\u7b26\u4e32\u8868\u793a\u6cd5\u6216\u6570\u7ec4\u8868\u793a\u6cd5\u6765\u6307\u5b9a\u63a7\u5236\u5668\u52a8\u4f5c\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>\/\/ \u4f7f\u7528\u5b57\u7b26\u4e32\u8868\u793a\u6cd5\nRoute::get('\/users', 'UserController@index');\n\n\/\/ \u4f7f\u7528\u6570\u7ec4\u8868\u793a\u6cd5\nRoute::get('\/users', [UserController::class, 'index']);\n<\/code><\/pre>\n\n\n\n<p>\u8fd9\u4e9b\u4ee3\u7801\u5c06GET\u8bf7\u6c42\u6620\u5c04\u5230UserController\u63a7\u5236\u5668\u7684index()\u65b9\u6cd5\u4e2d\uff0c\u5e76\u5448\u73b0\u540d\u4e3ausers.index\u7684\u89c6\u56fe\u3002<\/p>\n\n\n\n<p>\u603b\u4e4b\uff0c\u63a7\u5236\u5668\u548c\u8def\u7531\u662fLaravel\u5e94\u7528\u7a0b\u5e8f\u4e2d\u7684\u6838\u5fc3\u7ec4\u4ef6\u4e4b\u4e00\uff0c\u5b83\u4eec\u5bc6\u5207\u76f8\u5173\u5e76\u4e92\u76f8\u4f9d\u8d56\u3002\u8def\u7531\u5b9a\u4e49\u7528\u4e8e\u5c06HTTP\u8bf7\u6c42URL\u4e0e\u76f8\u5e94\u7684\u63a7\u5236\u5668\u52a8\u4f5c\u76f8\u5173\u8054\uff0c\u800c\u63a7\u5236\u5668\u52a8\u4f5c\u8d1f\u8d23\u5904\u7406HTTP\u8bf7\u6c42\u5e76\u6267\u884c\u76f8\u5e94\u7684\u4e1a\u52a1\u903b\u8f91\u3002\u901a\u8fc7\u4f7f\u7528\u63a7\u5236\u5668\u548c\u8def\u7531\uff0c\u53ef\u4ee5\u4f7fLaravel\u5e94\u7528\u7a0b\u5e8f\u5177\u6709\u9ad8\u5ea6\u7684\u53ef\u6269\u5c55\u6027\u548c\u53ef\u7ef4\u62a4\u6027\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91ca\u89c6\u56fe\u7684\u57fa\u672c\u6982\u5ff5\u4e0e\u521b\u5efa<\/p>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u89c6\u56fe\u662f\u7528\u4e8e\u5448\u73b0HTML\u5185\u5bb9\u7684\u6a21\u677f\u6587\u4ef6\u3002\u89c6\u56fe\u901a\u5e38\u5305\u542b\u52a8\u6001\u751f\u6210\u7684\u6570\u636e\u548c\u9759\u6001HTML\u4ee3\u7801\uff0c\u5e76\u4f7f\u7528Blade\u6a21\u677f\u5f15\u64ce\u6765\u8fdb\u884c\u6e32\u67d3\u3002\u4ee5\u4e0b\u662f\u89c6\u56fe\u7684\u57fa\u672c\u6982\u5ff5\u548c\u521b\u5efa\u6b65\u9aa4\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u89c6\u56fe\u5b9a\u4e49<\/li>\n<\/ol>\n\n\n\n<p>\u89c6\u56fe\u5b9a\u4e49\u662f\u4e00\u79cd\u5c06HTML\u5185\u5bb9\u4e0e\u52a8\u6001\u6570\u636e\u7ed3\u5408\u8d77\u6765\u7684\u673a\u5236\u3002\u5728Laravel\u4e2d\uff0c\u89c6\u56fe\u5b9a\u4e49\u901a\u5e38\u5b58\u50a8\u5728resources\/views\u76ee\u5f55\u4e2d\uff0c\u5e76\u4ee5.blade.php\u6587\u4ef6\u6269\u5c55\u540d\u7ed3\u5c3e\u3002\u89c6\u56fe\u53ef\u4ee5\u5305\u542b\u5404\u79cdHTML\u5143\u7d20\u3001Blade\u6307\u4ee4\u548cPHP\u4ee3\u7801\u5757\u7b49\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u52a8\u6001\u6570\u636e<\/li>\n<\/ol>\n\n\n\n<p>\u4e3a\u4e86\u5c06\u6570\u636e\u4f20\u9012\u5230\u89c6\u56fe\u4e2d\uff0c\u53ef\u4ee5\u5728\u63a7\u5236\u5668\u4e2d\u4f7f\u7528\u53d8\u91cf\u6216\u6570\u7ec4\u6765\u5b58\u50a8\u52a8\u6001\u6570\u636e\u3002\u63a7\u5236\u5668\u901a\u5e38\u4f7f\u7528\u89c6\u56fe\u5de5\u5382\u6765\u5b9e\u4f8b\u5316\u89c6\u56fe\u5bf9\u8c61\uff0c\u5e76\u5c06\u6570\u636e\u4f20\u9012\u7ed9\u89c6\u56fe\u3002\u4ee5\u4e0b\u662f\u4e00\u4e2a\u7b80\u5355\u7684\u63a7\u5236\u5668\u793a\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>public function index()\n{\n    $users = User::all();\n    return view('users.index', ['users' =&gt; $users]);\n}\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u63a7\u5236\u5668\u52a8\u4f5c\u4f7f\u7528User\u6a21\u578b\u8bfb\u53d6\u6240\u6709\u7528\u6237\u8bb0\u5f55\uff0c\u5e76\u5c06\u5b83\u4eec\u4f20\u9012\u7ed9\u540d\u4e3ausers.index\u7684\u89c6\u56fe\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u89c6\u56fe\u6e32\u67d3<\/li>\n<\/ol>\n\n\n\n<p>\u8981\u6e32\u67d3\u89c6\u56fe\uff0c\u53ef\u4ee5\u5728\u63a7\u5236\u5668\u4e2d\u4f7f\u7528view()\u51fd\u6570\u5e76\u4f20\u9012\u89c6\u56fe\u540d\u79f0\u548c\u52a8\u6001\u6570\u636e\u3002\u89c6\u56fe\u6e32\u67d3\u540e\uff0c\u5c06\u751f\u6210\u4e00\u4e2a\u5305\u542b\u52a8\u6001\u6570\u636e\u7684HTML\u5b57\u7b26\u4e32\uff0c\u5e76\u53ef\u4ee5\u5c06\u5176\u8fd4\u56de\u7ed9\u6d4f\u89c8\u5668\u6216\u5d4c\u5165\u5230\u5176\u4ed6\u89c6\u56fe\u4e2d\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>return view('users.index', ['users' =&gt; $users]);\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u4ee3\u7801\u5c06\u751f\u6210\u540d\u4e3ausers.index\u7684\u89c6\u56fe\uff0c\u5e76\u5c06$users\u53d8\u91cf\u4f20\u9012\u7ed9\u89c6\u56fe\u8fdb\u884c\u6e32\u67d3\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u89c6\u56fe\u7ee7\u627f<\/li>\n<\/ol>\n\n\n\n<p>Laravel\u4e2d\u7684\u89c6\u56fe\u53ef\u4ee5\u4f7f\u7528\u7ee7\u627f\u673a\u5236\uff0c\u4f7f\u5f97\u89c6\u56fe\u53ef\u4ee5\u4ece\u5176\u4ed6\u89c6\u56fe\u4e2d\u7ee7\u627f\u5e03\u5c40\u548c\u6837\u5f0f\u7b49\u5143\u7d20\u3002\u8981\u4f7f\u7528\u89c6\u56fe\u7ee7\u627f\uff0c\u53ef\u4ee5\u5728\u89c6\u56fe\u4e2d\u4f7f\u7528@extend\u6307\u4ee4\uff0c\u5e76\u6307\u5b9a\u8981\u7ee7\u627f\u7684\u7236\u7ea7\u89c6\u56fe\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>@extends('layouts.app')\n\n@section('content')\n    &lt;h1&gt;Users&lt;\/h1&gt;\n    &lt;ul&gt;\n        @foreach ($users as $user)\n            &lt;li&gt;{{ $user-&gt;name }}&lt;\/li&gt;\n        @endforeach\n    &lt;\/ul&gt;\n@endsection\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u89c6\u56fe\u4f7f\u7528@extends\u6307\u4ee4\u7ee7\u627f\u540d\u4e3alayouts.app\u7684\u7236\u7ea7\u89c6\u56fe\uff0c\u5e76\u4f7f\u7528@section\u548c@endsection\u6307\u4ee4\u5b9a\u4e49\u8be5\u89c6\u56fe\u7684\u5185\u5bb9\u533a\u57df\u3002<\/p>\n\n\n\n<p>\u603b\u4e4b\uff0c\u89c6\u56fe\u662fLaravel\u5e94\u7528\u7a0b\u5e8f\u4e2d\u7684\u6838\u5fc3\u7ec4\u4ef6\u4e4b\u4e00\uff0c\u7528\u4e8e\u5448\u73b0\u52a8\u6001HTML\u5185\u5bb9\u548c\u9759\u6001HTML\u4ee3\u7801\u3002\u89c6\u56fe\u901a\u5e38\u5b58\u50a8\u5728resources\/views\u76ee\u5f55\u4e2d\uff0c\u5e76\u4f7f\u7528Blade\u6a21\u677f\u5f15\u64ce\u8fdb\u884c\u6e32\u67d3\u3002\u901a\u8fc7\u5c06\u6570\u636e\u4f20\u9012\u5230\u89c6\u56fe\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u89c6\u56fe\u5177\u6709\u52a8\u6001\u6027\uff0c\u5e76\u5728\u4e0d\u540c\u7684\u63a7\u5236\u5668\u52a8\u4f5c\u4e2d\u91cd\u7528\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91caBlade\u6a21\u677f\u5f15\u64ce<\/p>\n\n\n\n<p>Blade\u662fLaravel\u6846\u67b6\u4e2d\u5185\u7f6e\u7684\u4e00\u79cd\u6a21\u677f\u5f15\u64ce\uff0c\u7528\u4e8e\u521b\u5efa\u52a8\u6001HTML\u5185\u5bb9\u548c\u9759\u6001HTML\u4ee3\u7801\u7684\u6a21\u677f\u6587\u4ef6\u3002Blade\u63d0\u4f9b\u4e86\u4e00\u4e9b\u5f3a\u5927\u7684\u529f\u80fd\uff0c\u4f8b\u5982\u6a21\u677f\u7ee7\u627f\u3001\u6761\u4ef6\u8bed\u53e5\u3001\u5faa\u73af\u8bed\u53e5\u3001\u8868\u5355\u751f\u6210\u5668\u548c\u5c40\u90e8\u89c6\u56fe\u7b49\uff0c\u4f7f\u5f97\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u8f7b\u677e\u5730\u521b\u5efa\u590d\u6742\u7684Web\u5e94\u7528\u7a0b\u5e8f\u3002\u4ee5\u4e0b\u662fBlade\u6a21\u677f\u5f15\u64ce\u7684\u4e00\u4e9b\u57fa\u672c\u6982\u5ff5\u548c\u529f\u80fd\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u6a21\u677f\u7ee7\u627f<\/li>\n<\/ol>\n\n\n\n<p>Blade\u652f\u6301\u6a21\u677f\u7ee7\u627f\uff0c\u4f7f\u5f97\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u5c06\u5e38\u89c1\u7684HTML\u5143\u7d20\u548c\u5e03\u5c40\u5b9a\u4e49\u4e3a\u7236\u7ea7\u6a21\u677f\uff0c\u5e76\u5728\u5b50\u6a21\u677f\u4e2d\u91cd\u7528\u5b83\u4eec\u3002\u4f7f\u7528@extends\u6307\u4ee4\u53ef\u4ee5\u6307\u5b9a\u5b50\u6a21\u677f\u8981\u7ee7\u627f\u7684\u7236\u7ea7\u6a21\u677f\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>&lt;!-- \u5b9a\u4e49\u7236\u7ea7\u6a21\u677f --&gt;\n&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n    &lt;head&gt;\n        &lt;title&gt;@yield('title')&lt;\/title&gt;\n    &lt;\/head&gt;\n    &lt;body&gt;\n        &lt;div class=\"container\"&gt;\n            @yield('content')\n        &lt;\/div&gt;\n    &lt;\/body&gt;\n&lt;\/html&gt;\n\n&lt;!-- \u5b9a\u4e49\u5b50\u6a21\u677f --&gt;\n@extends('layouts.app')\n\n@section('title', 'Users')\n\n@section('content')\n    &lt;h1&gt;Users&lt;\/h1&gt;\n    &lt;ul&gt;\n        @foreach ($users as $user)\n            &lt;li&gt;{{ $user-&gt;name }}&lt;\/li&gt;\n        @endforeach\n    &lt;\/ul&gt;\n@endsection\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u4ee3\u7801\u4f7f\u7528@extends\u6307\u4ee4\u6307\u5b9a\u5b50\u6a21\u677f\u8981\u7ee7\u627f\u7684\u7236\u7ea7\u6a21\u677f\uff0c\u5e76\u4f7f\u7528@section\u6307\u4ee4\u5b9a\u4e49\u5b50\u6a21\u677f\u7684\u5185\u5bb9\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u6761\u4ef6\u8bed\u53e5\u548c\u5faa\u73af\u8bed\u53e5<\/li>\n<\/ol>\n\n\n\n<p>Blade\u652f\u6301\u5e38\u89c1\u7684\u6761\u4ef6\u8bed\u53e5\u548c\u5faa\u73af\u8bed\u53e5\uff0c\u4f7f\u5f97\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u6839\u636e\u9700\u8981\u5bf9\u6a21\u677f\u8fdb\u884c\u52a8\u6001\u8c03\u6574\u3002\u4f8b\u5982\uff0c\u4f7f\u7528@if\u548c@endif\u6307\u4ee4\u53ef\u4ee5\u6839\u636e\u6761\u4ef6\u6765\u663e\u793a\u6216\u9690\u85cf\u6a21\u677f\u5757\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>@if (count($users) &gt; 0)\n    &lt;ul&gt;\n        @foreach ($users as $user)\n            &lt;li&gt;{{ $user-&gt;name }}&lt;\/li&gt;\n        @endforeach\n    &lt;\/ul&gt;\n@else\n    &lt;p&gt;No users found.&lt;\/p&gt;\n@endif\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u4ee3\u7801\u6839\u636e$users\u53d8\u91cf\u7684\u6570\u91cf\u663e\u793a\u6216\u9690\u85cf&lt;ul&gt;\u5217\u8868\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u8868\u5355\u751f\u6210\u5668<\/li>\n<\/ol>\n\n\n\n<p>Blade\u63d0\u4f9b\u4e86\u4e00\u4e2a\u8868\u5355\u751f\u6210\u5668\uff0c\u4f7f\u5f97\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u8f7b\u677e\u5730\u521b\u5efa\u5404\u79cd\u8868\u5355\u5143\u7d20\uff0c\u4f8b\u5982\u6587\u672c\u6846\u3001\u590d\u9009\u6846\u3001\u4e0b\u62c9\u5217\u8868\u548c\u6309\u94ae\u7b49\u3002\u4f7f\u7528Blade\u7684\u8868\u5355\u751f\u6210\u5668\u53ef\u4ee5\u907f\u514d\u624b\u52a8\u7f16\u5199HTML\u4ee3\u7801\uff0c\u5e76\u786e\u4fdd\u751f\u6210\u7684\u8868\u5355\u5143\u7d20\u9075\u5faaLaravel\u7684\u6700\u4f73\u5b9e\u8df5\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>{{ Form::open(['url' =&gt; '\/user']) }}\n    {{ Form::label('name', 'Name') }}\n    {{ Form::text('name') }}\n\n    {{ Form::label('email', 'Email Address') }}\n    {{ Form::email('email') }}\n\n    {{ Form::submit('Save') }}\n{{ Form::close() }}\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u4ee3\u7801\u4f7f\u7528Blade\u7684\u8868\u5355\u751f\u6210\u5668\u521b\u5efa\u4e00\u4e2a\u5305\u542b\u540d\u79f0\u3001\u7535\u5b50\u90ae\u4ef6\u548c\u4fdd\u5b58\u6309\u94ae\u7684\u8868\u5355\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u5c40\u90e8\u89c6\u56fe<\/li>\n<\/ol>\n\n\n\n<p>Blade\u652f\u6301\u5c40\u90e8\u89c6\u56fe\uff0c\u4f7f\u5f97\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u5c06<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u7ee7\u7eed<\/p>\n\n\n\n<p>\u89c6\u56fe\u5206\u89e3\u4e3a\u591a\u4e2a\u5c0f\u5757\uff0c\u5e76\u5728\u9700\u8981\u65f6\u8fdb\u884c\u91cd\u7528\u3002\u5c40\u90e8\u89c6\u56fe\u901a\u5e38\u5305\u542b\u5355\u4e2aHTML\u5143\u7d20\u6216\u5c0f\u578bHTML\u5757\uff0c\u4f8b\u5982\u5bfc\u822a\u680f\u3001\u9875\u811a\u6216\u8b66\u544a\u6846\u7b49\u3002\u4f7f\u7528Blade\u7684@include\u6307\u4ee4\u53ef\u4ee5\u5c06\u5c40\u90e8\u89c6\u56fe\u5305\u542b\u5728\u4e3b\u89c6\u56fe\u4e2d\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>&lt;!-- \u4e3b\u89c6\u56fe --&gt;\n&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n    &lt;head&gt;\n        &lt;title&gt;@yield('title')&lt;\/title&gt;\n    &lt;\/head&gt;\n    &lt;body&gt;\n        @include('partials.navbar')\n\n        &lt;div class=\"container\"&gt;\n            @yield('content')\n        &lt;\/div&gt;\n\n        @include('partials.footer')\n    &lt;\/body&gt;\n&lt;\/html&gt;\n\n&lt;!-- \u5c40\u90e8\u89c6\u56fe --&gt;\n&lt;nav class=\"navbar\"&gt;\n    &lt;!-- \u5bfc\u822a\u680f\u5185\u5bb9 --&gt;\n&lt;\/nav&gt;\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u4ee3\u7801\u4f7f\u7528@include\u6307\u4ee4\u5c06\u5c40\u90e8\u89c6\u56fepartials.navbar\u548cpartials.footer\u5305\u542b\u5728\u4e3b\u89c6\u56fe\u4e2d\u3002<\/p>\n\n\n\n<p>\u603b\u4e4b\uff0cBlade\u662fLaravel\u6846\u67b6\u4e2d\u5185\u7f6e\u7684\u4e00\u79cd\u6a21\u677f\u5f15\u64ce\uff0c\u7528\u4e8e\u521b\u5efa\u52a8\u6001HTML\u5185\u5bb9\u548c\u9759\u6001HTML\u4ee3\u7801\u7684\u6a21\u677f\u6587\u4ef6\u3002Blade\u63d0\u4f9b\u4e86\u4e00\u4e9b\u5f3a\u5927\u7684\u529f\u80fd\uff0c\u4f8b\u5982\u6a21\u677f\u7ee7\u627f\u3001\u6761\u4ef6\u8bed\u53e5\u3001\u5faa\u73af\u8bed\u53e5\u3001\u8868\u5355\u751f\u6210\u5668\u548c\u5c40\u90e8\u89c6\u56fe\u7b49\uff0c\u4f7f\u5f97\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u8f7b\u677e\u5730\u521b\u5efa\u590d\u6742\u7684Web\u5e94\u7528\u7a0b\u5e8f\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91ca\u6a21\u677f\u7ee7\u627f\u4e0e\u7ec4\u4ef6\u5316<\/p>\n\n\n\n<p>\u6a21\u677f\u7ee7\u627f\u548c\u7ec4\u4ef6\u5316\u662f\u73b0\u4ee3Web\u5f00\u53d1\u4e2d\u5e38\u7528\u7684\u4e24\u79cd\u6280\u672f\uff0c\u53ef\u4ee5\u5e2e\u52a9\u5f00\u53d1\u4eba\u5458\u63d0\u9ad8\u4ee3\u7801\u590d\u7528\u6027\u548c\u53ef\u7ef4\u62a4\u6027\u3002\u5728Laravel\u4e2d\uff0cBlade\u6a21\u677f\u5f15\u64ce\u63d0\u4f9b\u4e86\u5f3a\u5927\u7684\u6a21\u677f\u7ee7\u627f\u548c\u7ec4\u4ef6\u5316\u529f\u80fd\uff0c\u4f7f\u5f97\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u8f7b\u677e\u5730\u521b\u5efa\u5177\u6709\u9ad8\u5ea6\u53ef\u5b9a\u5236\u6027\u548c\u53ef\u6269\u5c55\u6027\u7684Web\u5e94\u7528\u7a0b\u5e8f\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u6a21\u677f\u7ee7\u627f<\/li>\n<\/ol>\n\n\n\n<p>\u6a21\u677f\u7ee7\u627f\u662f\u4e00\u79cd\u5c06\u5e38\u89c1\u7684HTML\u5143\u7d20\u548c\u5e03\u5c40\u5b9a\u4e49\u4e3a\u7236\u7ea7\u6a21\u677f\uff0c\u5e76\u5728\u5b50\u6a21\u677f\u4e2d\u91cd\u7528\u5b83\u4eec\u7684\u673a\u5236\u3002\u5728Laravel\u4e2d\uff0c\u4f7f\u7528Blade\u6a21\u677f\u5f15\u64ce\u53ef\u4ee5\u8f7b\u677e\u5730\u5b9e\u73b0\u6a21\u677f\u7ee7\u627f\u529f\u80fd\u3002\u901a\u8fc7\u5728\u5b50\u6a21\u677f\u4e2d\u4f7f\u7528@extends\u6307\u4ee4\u6307\u5b9a\u7236\u7ea7\u6a21\u677f\u7684\u540d\u79f0\uff0c\u5e76\u4f7f\u7528@section\u548c@endsection\u6307\u4ee4\u5b9a\u4e49\u5b50\u6a21\u677f\u7684\u5185\u5bb9\uff0c\u53ef\u4ee5\u5c06\u7236\u7ea7\u6a21\u677f\u4e2d\u7684HTML\u5143\u7d20\u548c\u5e03\u5c40\u6a21\u677f\u91cd\u7528\u5230\u5b50\u6a21\u677f\u4e2d\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>&lt;!-- \u7236\u7ea7\u6a21\u677f --&gt;\n&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n    &lt;head&gt;\n        &lt;title&gt;@yield('title')&lt;\/title&gt;\n    &lt;\/head&gt;\n    &lt;body&gt;\n        &lt;div class=\"container\"&gt;\n            @yield('content')\n        &lt;\/div&gt;\n    &lt;\/body&gt;\n&lt;\/html&gt;\n\n&lt;!-- \u5b50\u6a21\u677f --&gt;\n@extends('layouts.app')\n\n@section('title', 'Users')\n\n@section('content')\n    &lt;h1&gt;Users&lt;\/h1&gt;\n    &lt;ul&gt;\n        @foreach ($users as $user)\n            &lt;li&gt;{{ $user-&gt;name }}&lt;\/li&gt;\n        @endforeach\n    &lt;\/ul&gt;\n@endsection\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u4ee3\u7801\u4f7f\u7528Blade\u6a21\u677f\u5f15\u64ce\u5b9e\u73b0\u4e86\u6a21\u677f\u7ee7\u627f\u529f\u80fd\uff0c\u7236\u7ea7\u6a21\u677f\u4e2d\u7684HTML\u5143\u7d20\u548c\u5e03\u5c40\u6a21\u677f\u53ef\u4ee5\u91cd\u7528\u5230\u5b50\u6a21\u677f\u4e2d\uff0c\u4ece\u800c\u63d0\u9ad8\u4e86\u4ee3\u7801\u7684\u590d\u7528\u6027\u548c\u53ef\u7ef4\u62a4\u6027\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u7ec4\u4ef6\u5316<\/li>\n<\/ol>\n\n\n\n<p>\u7ec4\u4ef6\u5316\u662f\u4e00\u79cd\u5c06UI\u5143\u7d20\u5b9a\u4e49\u4e3a\u72ec\u7acb\u7684\u7ec4\u4ef6\uff0c\u5e76\u901a\u8fc7\u7ec4\u5408\u8fd9\u4e9b\u7ec4\u4ef6\u6765\u521b\u5efa\u590d\u6742\u7684UI\u754c\u9762\u7684\u673a\u5236\u3002\u5728Laravel\u4e2d\uff0c\u4f7f\u7528Blade\u6a21\u677f\u5f15\u64ce\u53ef\u4ee5\u8f7b\u677e\u5730\u5b9e\u73b0\u7ec4\u4ef6\u5316\u529f\u80fd\u3002\u901a\u8fc7\u5728\u7ec4\u4ef6\u6587\u4ef6\u4e2d\u4f7f\u7528Blade\u6307\u4ee4\u5b9a\u4e49\u7ec4\u4ef6\u7684HTML\u5143\u7d20\u548c\u5e03\u5c40\uff0c\u53ef\u4ee5\u5c06\u7ec4\u4ef6\u4f5c\u4e3a\u4e00\u4e2a\u72ec\u7acb\u7684UI\u5143\u7d20\u8fdb\u884c\u91cd\u7528\u3002\u7ec4\u4ef6\u53ef\u4ee5\u5305\u542b\u81ea\u5df1\u7684\u6570\u636e\u548c\u903b\u8f91\uff0c\u5e76\u901a\u8fc7\u7ec4\u5408\u591a\u4e2a\u7ec4\u4ef6\u6765\u521b\u5efa\u590d\u6742\u7684UI\u754c\u9762\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>&lt;!-- User\u7ec4\u4ef6 --&gt;\n&lt;div class=\"card\"&gt;\n    &lt;div class=\"card-header\"&gt;\n        {{ $user-&gt;name }}\n    &lt;\/div&gt;\n    &lt;div class=\"card-body\"&gt;\n        {{ $user-&gt;email }}\n    &lt;\/div&gt;\n&lt;\/div&gt;\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u4ee3\u7801\u5b9a\u4e49\u4e86\u4e00\u4e2a\u540d\u4e3aUser\u7684\u7ec4\u4ef6\uff0c\u5305\u542b\u4e00\u4e2a\u540d\u4e3acard\u7684CSS\u7c7b\u548c\u4e24\u4e2a\u6570\u636e\u7ed1\u5b9a\u7684\u533a\u57df\uff0c\u7528\u4e8e\u663e\u793a\u7528\u6237\u540d\u548c\u7535\u5b50\u90ae\u4ef6\u5730\u5740\u3002<\/p>\n\n\n\n<p>\u7ec4\u4ef6\u5316\u4f7f\u5f97\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u5c06UI\u5143\u7d20\u5206\u89e3\u4e3a\u72ec\u7acb\u7684\u7ec4\u4ef6\uff0c\u5e76\u901a\u8fc7\u7ec4\u5408\u8fd9\u4e9b\u7ec4\u4ef6\u6765\u521b\u5efa\u590d\u6742\u7684UI\u754c\u9762\u3002\u7ec4\u4ef6\u53ef\u4ee5\u5728\u4e0d\u540c\u7684\u9875\u9762\u548c\u5e94\u7528\u7a0b\u5e8f\u4e2d\u91cd\u7528\uff0c\u4ece\u800c\u63d0\u9ad8\u4e86\u4ee3\u7801\u7684\u590d<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u7ee7\u7eed<\/p>\n\n\n\n<p>\u7528\u6027\u548c\u53ef\u7ef4\u62a4\u6027\u3002\u5728Laravel\u4e2d\uff0c\u4f7f\u7528Blade\u6a21\u677f\u5f15\u64ce\u548cVue.js\u7b49\u524d\u7aef\u6846\u67b6\uff0c\u53ef\u4ee5\u8f7b\u677e\u5730\u5b9e\u73b0\u7ec4\u4ef6\u5316\u529f\u80fd\uff0c\u4f7f\u5f97\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u5feb\u901f\u521b\u5efa\u5177\u6709\u9ad8\u5ea6\u53ef\u5b9a\u5236\u6027\u548c\u53ef\u6269\u5c55\u6027\u7684Web\u5e94\u7528\u7a0b\u5e8f\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>Blade\u7ec4\u4ef6<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel 5.7\u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0cBlade\u6a21\u677f\u5f15\u64ce\u63d0\u4f9b\u4e86Blade\u7ec4\u4ef6\u529f\u80fd\uff0c\u7528\u4e8e\u5b9e\u73b0\u66f4\u52a0\u7075\u6d3b\u548c\u9ad8\u5ea6\u53ef\u5b9a\u5236\u7684\u7ec4\u4ef6\u5316\u3002\u901a\u8fc7\u5728\u7ec4\u4ef6\u7c7b\u4e2d\u5b9a\u4e49\u7ec4\u4ef6\u7684HTML\u5143\u7d20\u548c\u5e03\u5c40\uff0c\u5e76\u4f7f\u7528@slot\u6307\u4ee4\u5b9a\u4e49\u7ec4\u4ef6\u7684\u63d2\u69fd\uff0c\u53ef\u4ee5\u5c06\u7ec4\u4ef6\u5b9a\u4e49\u4e3a\u4e00\u4e2a\u72ec\u7acb\u7684\u7c7b\uff0c\u5e76\u901a\u8fc7\u5728\u6a21\u677f\u4e2d\u4f7f\u7528\u7ec4\u4ef6\u6807\u8bb0\u6765\u5f15\u7528\u8be5\u7ec4\u4ef6\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>&lt;!-- User\u7ec4\u4ef6 --&gt;\n&lt;div class=\"card\"&gt;\n    &lt;div class=\"card-header\"&gt;\n        {{ $title }}\n    &lt;\/div&gt;\n    &lt;div class=\"card-body\"&gt;\n        {{ $slot }}\n    &lt;\/div&gt;\n&lt;\/div&gt;\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>&lt;!-- \u4f7f\u7528User\u7ec4\u4ef6 --&gt;\n&lt;x-user title=\"User Details\"&gt;\n    &lt;ul&gt;\n        @foreach ($users as $user)\n            &lt;li&gt;{{ $user-&gt;name }}&lt;\/li&gt;\n        @endforeach\n    &lt;\/ul&gt;\n&lt;\/x-user&gt;\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u4ee3\u7801\u5b9a\u4e49\u4e86\u4e00\u4e2a\u540d\u4e3aUser\u7684Blade\u7ec4\u4ef6\u7c7b\uff0c\u4f7f\u7528@slot\u6307\u4ee4\u5b9a\u4e49\u7ec4\u4ef6\u7684\u63d2\u69fd\uff0c\u53ef\u4ee5\u5728\u6a21\u677f\u4e2d\u901a\u8fc7&lt;x-user&gt;\u6807\u8bb0\u5f15\u7528\u8be5\u7ec4\u4ef6\uff0c\u5e76\u4f20\u9012\u7ec4\u4ef6\u7684\u6570\u636e\u3002<\/p>\n\n\n\n<p>Blade\u7ec4\u4ef6\u63d0\u4f9b\u4e86\u66f4\u52a0\u7075\u6d3b\u548c\u9ad8\u5ea6\u53ef\u5b9a\u5236\u7684\u7ec4\u4ef6\u5316\u529f\u80fd\uff0c\u4f7f\u5f97\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u521b\u5efa\u5177\u6709\u590d\u6742\u5e03\u5c40\u548c\u903b\u8f91\u7684\u7ec4\u4ef6\uff0c\u5e76\u5728\u591a\u4e2a\u5e94\u7528\u7a0b\u5e8f\u548c\u9875\u9762\u4e2d\u91cd\u7528\u5b83\u4eec\u3002Blade\u7ec4\u4ef6\u8fd8\u53ef\u4ee5\u4f7f\u7528\u4f9d\u8d56\u6ce8\u5165\u548c\u4e8b\u4ef6\u7b49\u529f\u80fd\uff0c\u4f7f\u5f97\u7ec4\u4ef6\u53ef\u4ee5\u66f4\u52a0\u7075\u6d3b\u5730\u54cd\u5e94\u7528\u6237\u64cd\u4f5c\u548c\u72b6\u6001\u53d8\u5316\u3002<\/p>\n\n\n\n<p>\u603b\u4e4b\uff0c\u6a21\u677f\u7ee7\u627f\u548c\u7ec4\u4ef6\u5316\u662f\u73b0\u4ee3Web\u5f00\u53d1\u4e2d\u5e38\u7528\u7684\u4e24\u79cd\u6280\u672f\uff0c\u53ef\u4ee5\u5e2e\u52a9\u5f00\u53d1\u4eba\u5458\u63d0\u9ad8\u4ee3\u7801\u590d\u7528\u6027\u548c\u53ef\u7ef4\u62a4\u6027\u3002\u5728Laravel\u4e2d\uff0cBlade\u6a21\u677f\u5f15\u64ce\u63d0\u4f9b\u4e86\u5f3a\u5927\u7684\u6a21\u677f\u7ee7\u627f\u548c\u7ec4\u4ef6\u5316\u529f\u80fd\uff0c\u4f7f\u5f97\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u8f7b\u677e\u5730\u521b\u5efa\u5177\u6709\u9ad8\u5ea6\u53ef\u5b9a\u5236\u6027\u548c\u53ef\u6269\u5c55\u6027\u7684Web\u5e94\u7528\u7a0b\u5e8f\u3002\u901a\u8fc7Blade\u7ec4\u4ef6\uff0c\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u521b\u5efa\u5177\u6709\u590d\u6742\u5e03\u5c40\u548c\u903b\u8f91\u7684\u7ec4\u4ef6\uff0c\u5e76\u5728\u591a\u4e2a\u5e94\u7528\u7a0b\u5e8f\u548c\u9875\u9762\u4e2d\u91cd\u7528\u5b83\u4eec\uff0c\u4ece\u800c\u63d0\u9ad8\u4e86\u4ee3\u7801\u7684\u590d\u7528\u6027\u548c\u53ef\u7ef4\u62a4\u6027\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91ca\u6570\u636e\u5e93\u914d\u7f6e\u4e0e\u8fde\u63a5<\/p>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u6570\u636e\u5e93\u914d\u7f6e\u548c\u8fde\u63a5\u662f\u521b\u5efa\u548c\u7ba1\u7406\u6570\u636e\u5e93\u8fde\u63a5\u7684\u91cd\u8981\u7ec4\u6210\u90e8\u5206\u3002Laravel\u6846\u67b6\u63d0\u4f9b\u4e86\u7b80\u5355\u7684\u914d\u7f6e\u6587\u4ef6\u548cAPI\uff0c\u4f7f\u5f97\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u8f7b\u677e\u5730\u521b\u5efa\u548c\u7ba1\u7406\u6570\u636e\u5e93\u8fde\u63a5\uff0c\u5e76\u8fdb\u884c\u5404\u79cd\u6570\u636e\u5e93\u64cd\u4f5c\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u6570\u636e\u5e93\u914d\u7f6e<\/li>\n<\/ol>\n\n\n\n<p>Laravel\u4e2d\u7684\u6570\u636e\u5e93\u914d\u7f6e\u662f\u6307\u5c06\u5e94\u7528\u7a0b\u5e8f\u8fde\u63a5\u5230\u6570\u636e\u5e93\u6240\u9700\u7684\u8bbe\u7f6e\u548c\u53c2\u6570\uff0c\u4f8b\u5982\u6570\u636e\u5e93\u7684\u540d\u79f0\u3001\u4e3b\u673a\u3001\u7528\u6237\u540d\u548c\u5bc6\u7801\u7b49\u3002Laravel\u4e2d\u7684\u6570\u636e\u5e93\u914d\u7f6e\u5b58\u50a8\u5728config\/database.php\u6587\u4ef6\u4e2d\uff0c\u5e76\u4e14\u53ef\u4ee5\u6839\u636e\u9700\u8981\u8fdb\u884c\u4fee\u6539\u3002\u5728\u6b64\u6587\u4ef6\u4e2d\uff0c\u53ef\u4ee5\u5b9a\u4e49\u591a\u4e2a\u6570\u636e\u5e93\u8fde\u63a5\uff0c\u5e76\u4e3a\u6bcf\u4e2a\u8fde\u63a5\u6307\u5b9a\u4e0d\u540c\u7684\u53c2\u6570\u548c\u9009\u9879\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>'connections' =&gt; [\n\n    'mysql' =&gt; [\n        'driver' =&gt; 'mysql',\n        'host' =&gt; env('DB_HOST', '127.0.0.1'),\n        'port' =&gt; env('DB_PORT', '3306'),\n        'database' =&gt; env('DB_DATABASE', 'forge'),\n        'username' =&gt; env('DB_USERNAME', 'forge'),\n        'password' =&gt; env('DB_PASSWORD', ''),\n        'charset' =&gt; 'utf8mb4',\n        'collation' =&gt; 'utf8mb4_unicode_ci',\n        'prefix' =&gt; '',\n        'strict' =&gt; true,\n        'engine' =&gt; null,\n    ],\n\n    'pgsql' =&gt; [\n        'driver' =&gt; 'pgsql',\n        'host' =&gt; env('DB_HOST', '127.0.0.1'),\n        'port' =&gt; env('DB_PORT', '5432'),\n        'database' =&gt; env('DB_DATABASE', 'forge'),\n        'username' =&gt; env('DB_USERNAME', 'forge'),\n        'password' =&gt; env('DB_PASSWORD', ''),\n        'charset' =&gt; 'utf8',\n        'prefix' =&gt; '',\n        'schema' =&gt; 'public',\n        'sslmode' =&gt; 'prefer',\n    ],\n\n],\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u4ee3\u7801\u5b9a\u4e49\u4e86\u4e24\u4e2a\u6570\u636e\u5e93\u8fde\u63a5\uff1amysql\u548cpgsql\u3002\u6bcf\u4e2a\u8fde\u63a5\u90fd\u5305\u542b\u4e00\u4e2a\u9a71\u52a8\u7a0b\u5e8f\u3001\u4e3b\u673a\u3001\u7aef\u53e3\u3001\u6570\u636e\u5e93\u540d\u79f0\u3001\u7528\u6237\u540d\u3001\u5bc6\u7801\u3001\u5b57\u7b26\u96c6\u3001\u524d\u7f00\u7b49\u53c2\u6570\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u6570\u636e\u5e93\u8fde\u63a5<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u4f7f\u7528DB\u95e8\u9762\u53ef\u4ee5\u8f7b\u677e\u5730\u521b\u5efa\u548c\u7ba1\u7406\u6570\u636e\u5e93\u8fde\u63a5\u3002DB\u95e8\u9762\u63d0\u4f9b\u4e86\u4e00\u7cfb\u5217\u9759\u6001\u65b9\u6cd5\uff0c\u53ef\u4ee5\u7528\u4e8e\u6267\u884c\u5404\u79cd\u6570\u636e\u5e93\u64cd\u4f5c\uff0c\u4f8b\u5982\u67e5\u8be2\u3001\u63d2\u5165\u3001\u66f4\u65b0\u548c\u5220\u9664\u7b49\u3002\u8981\u4f7f\u7528DB\u95e8\u9762\uff0c\u9996\u5148\u9700\u8981\u4f7f\u7528use\u5173\u952e\u5b57\u5bfc\u5165\u95e8\u9762\u7c7b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>use Illuminate\\Support\\Facades\\DB;\n<\/code><\/pre>\n\n\n\n<p>\u7136\u540e\uff0c\u53ef\u4ee5\u4f7f\u7528DB\u95e8\u9762\u7684\u9759\u6001\u65b9\u6cd5\u521b\u5efa\u548c\u7ba1\u7406\u6570\u636e\u5e93\u8fde\u63a5\uff0c\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>\/\/ \u521b\u5efa\u6570\u636e\u5e93\u8fde\u63a5\n$connection = DB::connection('mysql');\n\n\/\/ \u6267\u884c\u67e5\u8be2\u64cd\u4f5c\n$users = $connection-&gt;table('users')-&gt;get();\n\n\/\/ \u63d2\u5165\u6570\u636e\n$connection-&gt;table('users')-&gt;insert([\n    'name' =&gt; 'John Doe',\n    'email' =&gt; 'johndoe@example.com',\n]);\n\n\/\/ \u66f4\u65b0\u6570\u636e\n$connection-&gt;table('users')-&gt;where('id', 1)-&gt;update([\n    'name' =&gt; 'Jane Doe',\n    'email' =&gt; 'janedoe@example.com',\n]);\n\n\/\/ \u5220\u9664\u6570\u636e\n$connection-&gt;table('users')-&gt;where('id', 1)-&gt;delete();\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u4ee3\u7801\u4f7f\u7528DB\u95e8\u9762\u521b\u5efa\u4e86\u4e00\u4e2a\u540d\u4e3amysql\u7684\u6570\u636e\u5e93\u8fde\u63a5\uff0c\u5e76\u4f7f\u7528\u8be5\u8fde\u63a5\u6267\u884c\u4e86\u67e5\u8be2\u3001\u63d2\u5165\u3001\u66f4\u65b0\u548c\u5220\u9664\u7b49\u64cd\u4f5c\u3002<\/p>\n\n\n\n<p>\u603b\u4e4b\uff0c\u5728Laravel\u4e2d\uff0c\u6570\u636e\u5e93\u914d\u7f6e\u548c\u8fde\u63a5\u662f\u521b\u5efa\u548c\u7ba1\u7406<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u7ee7\u7eed<\/p>\n\n\n\n<p>\u6570\u636e\u5e93\u8fde\u63a5\u7684\u91cd\u8981\u7ec4\u6210\u90e8\u5206\u3002\u5728config\/database.php\u6587\u4ef6\u4e2d\u5b9a\u4e49\u6570\u636e\u5e93\u8fde\u63a5\u53c2\u6570\uff0c\u7136\u540e\u4f7f\u7528DB\u95e8\u9762\u7684\u9759\u6001\u65b9\u6cd5\u521b\u5efa\u548c\u7ba1\u7406\u6570\u636e\u5e93\u8fde\u63a5\u3002DB\u95e8\u9762\u63d0\u4f9b\u4e86\u4e00\u7cfb\u5217\u9759\u6001\u65b9\u6cd5\uff0c\u53ef\u4ee5\u7528\u4e8e\u6267\u884c\u5404\u79cd\u6570\u636e\u5e93\u64cd\u4f5c\uff0c\u4f8b\u5982\u67e5\u8be2\u3001\u63d2\u5165\u3001\u66f4\u65b0\u548c\u5220\u9664\u7b49\u3002\u5728\u4f7f\u7528DB\u95e8\u9762\u65f6\uff0c\u9700\u8981\u5148\u5bfc\u5165DB\u95e8\u9762\u7c7b\uff0c\u7136\u540e\u4f7f\u7528connection\u65b9\u6cd5\u6307\u5b9a\u8981\u4f7f\u7528\u7684\u6570\u636e\u5e93\u8fde\u63a5\u3002<\/p>\n\n\n\n<p>\u9664\u4e86\u4f7f\u7528DB\u95e8\u9762\u5916\uff0cLaravel\u8fd8\u63d0\u4f9b\u4e86Eloquent ORM\uff0c\u5b83\u662f\u4e00\u79cd\u57fa\u4e8eActiveRecord\u6a21\u5f0f\u7684ORM\u6846\u67b6\uff0c\u53ef\u4ee5\u8f7b\u677e\u5730\u4e0e\u6570\u636e\u5e93\u4ea4\u4e92\u3002Eloquent ORM\u63d0\u4f9b\u4e86\u4e00\u79cd\u7b80\u5355\u7684\u3001\u9762\u5411\u5bf9\u8c61\u7684\u65b9\u6cd5\uff0c\u7528\u4e8e\u5b9a\u4e49\u548c\u64cd\u4f5c\u6570\u636e\u5e93\u8868\uff0c\u4f7f\u5f97\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u8f7b\u677e\u5730\u8fdb\u884c\u5404\u79cd\u6570\u636e\u5e93\u64cd\u4f5c\uff0c\u4f8b\u5982\u67e5\u8be2\u3001\u63d2\u5165\u3001\u66f4\u65b0\u548c\u5220\u9664\u7b49\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>use Illuminate\\Database\\Eloquent\\Model;\n\nclass User extends Model\n{\n    \/**\n     * The table associated with the model.\n     *\n     * @var string\n     *\/\n    protected $table = 'users';\n}\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u4ee3\u7801\u5b9a\u4e49\u4e86\u4e00\u4e2a\u540d\u4e3aUser\u7684Eloquent\u6a21\u578b\u7c7b\uff0c\u5c06\u8be5\u6a21\u578b\u7c7b\u5173\u8054\u5230\u540d\u4e3ausers\u7684\u6570\u636e\u8868\u4e2d\u3002\u7136\u540e\uff0c\u53ef\u4ee5\u4f7f\u7528\u8be5\u6a21\u578b\u7c7b\u8f7b\u677e\u5730\u6267\u884c\u5404\u79cd\u6570\u636e\u5e93\u64cd\u4f5c\uff0c\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>\/\/ \u67e5\u8be2\u6240\u6709\u7528\u6237\n$users = User::all();\n\n\/\/ \u6839\u636e\u6761\u4ef6\u67e5\u8be2\u7528\u6237\n$user = User::where('id', 1)-&gt;first();\n\n\/\/ \u63d2\u5165\u65b0\u7528\u6237\n$user = new User;\n$user-&gt;name = 'John Doe';\n$user-&gt;email = 'johndoe@example.com';\n$user-&gt;save();\n\n\/\/ \u66f4\u65b0\u7528\u6237\n$user = User::find(1);\n$user-&gt;name = 'Jane Doe';\n$user-&gt;email = 'janedoe@example.com';\n$user-&gt;save();\n\n\/\/ \u5220\u9664\u7528\u6237\n$user = User::find(1);\n$user-&gt;delete();\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u4ee3\u7801\u4f7f\u7528Eloquent\u6a21\u578b\u7c7b\u8f7b\u677e\u5730\u6267\u884c\u5404\u79cd\u6570\u636e\u5e93\u64cd\u4f5c\uff0c\u4f8b\u5982\u67e5\u8be2\u6240\u6709\u7528\u6237\u3001\u6839\u636e\u6761\u4ef6\u67e5\u8be2\u7528\u6237\u3001\u63d2\u5165\u65b0\u7528\u6237\u3001\u66f4\u65b0\u7528\u6237\u548c\u5220\u9664\u7528\u6237\u7b49\u3002<\/p>\n\n\n\n<p>\u603b\u4e4b\uff0cLaravel\u6846\u67b6\u63d0\u4f9b\u4e86\u7b80\u5355\u7684\u914d\u7f6e\u6587\u4ef6\u548cAPI\uff0c\u4f7f\u5f97\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u8f7b\u677e\u5730\u521b\u5efa\u548c\u7ba1\u7406\u6570\u636e\u5e93\u8fde\u63a5\uff0c\u5e76\u8fdb\u884c\u5404\u79cd\u6570\u636e\u5e93\u64cd\u4f5c\u3002\u53ef\u4ee5\u4f7f\u7528DB\u95e8\u9762\u6216Eloquent ORM\u7b49\u6280\u672f\uff0c\u8f7b\u677e\u5730\u4e0e\u6570\u636e\u5e93\u4ea4\u4e92\uff0c\u5e76\u521b\u5efa\u51fa\u9ad8\u6548\u3001\u53ef\u7ef4\u62a4\u3001\u6613\u4e8e\u6269\u5c55\u7684Web\u5e94\u7528\u7a0b\u5e8f\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91caEloquent ORM\u6982\u8ff0<\/p>\n\n\n\n<p>Eloquent ORM\u662fLaravel\u6846\u67b6\u4e2d\u7684\u4e00\u4e2a\u91cd\u8981\u7ec4\u6210\u90e8\u5206\uff0c\u5b83\u662f\u4e00\u79cd\u57fa\u4e8eActiveRecord\u6a21\u5f0f\u7684ORM\u6846\u67b6\uff0c\u7528\u4e8e\u7b80\u5316\u4e0e\u6570\u636e\u5e93\u7684\u4ea4\u4e92\u3002ORM\u662f\u4e00\u79cd\u7f16\u7a0b\u6280\u672f\uff0c\u7528\u4e8e\u5c06\u5bf9\u8c61\u6620\u5c04\u5230\u5173\u7cfb\u6570\u636e\u5e93\u4e2d\u7684\u8868\u548c\u884c\uff0c\u4f7f\u5f97\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u4f7f\u7528\u9762\u5411\u5bf9\u8c61\u7684\u65b9\u5f0f\u5904\u7406\u6570\u636e\uff0c\u800c\u4e0d\u9700\u8981\u7f16\u5199\u590d\u6742\u7684SQL\u67e5\u8be2\u8bed\u53e5\u3002<\/p>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0cEloquent ORM\u63d0\u4f9b\u4e86\u4e00\u79cd\u7b80\u5355\u7684\u3001\u9762\u5411\u5bf9\u8c61\u7684\u65b9\u6cd5\uff0c\u7528\u4e8e\u5b9a\u4e49\u548c\u64cd\u4f5c\u6570\u636e\u5e93\u8868\u3002\u901a\u8fc7\u5c06\u6570\u636e\u5e93\u8868\u6620\u5c04\u4e3aEloquent\u6a21\u578b\u7c7b\uff0c\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u8f7b\u677e\u5730\u6267\u884c\u5404\u79cd\u6570\u636e\u5e93\u64cd\u4f5c\uff0c\u4f8b\u5982\u67e5\u8be2\u3001\u63d2\u5165\u3001\u66f4\u65b0\u548c\u5220\u9664\u7b49\u3002<\/p>\n\n\n\n<p>\u4ee5\u4e0b\u662fEloquent ORM\u7684\u4e00\u4e9b\u4e3b\u8981\u7279\u70b9\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u6a21\u578b\u5b9a\u4e49<\/li>\n<\/ol>\n\n\n\n<p>\u5728Eloquent ORM\u4e2d\uff0c\u6bcf\u4e2a\u6570\u636e\u5e93\u8868\u90fd\u53ef\u4ee5\u6620\u5c04\u4e3a\u4e00\u4e2aEloquent\u6a21\u578b\u7c7b\uff0c\u8be5\u6a21\u578b\u7c7b\u7528\u4e8e\u5b9a\u4e49\u8868\u4e2d\u7684\u5b57\u6bb5\u3001\u5c5e\u6027\u548c\u5173\u7cfb\u7b49\u3002\u4f8b\u5982\uff0c\u5b9a\u4e49\u4e00\u4e2a\u540d\u4e3aUser\u7684\u6a21\u578b\u7c7b\uff0c\u53ef\u4ee5\u50cf\u8fd9\u6837\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>use Illuminate\\Database\\Eloquent\\Model;\n\nclass User extends Model\n{\n    \/\/ \u6a21\u578b\u5bf9\u5e94\u7684\u6570\u636e\u8868\u540d\n    protected $table = 'users';\n\n    \/\/ \u6a21\u578b\u7684\u4e3b\u952e\n    protected $primaryKey = 'id';\n\n    \/\/ \u6a21\u578b\u662f\u5426\u81ea\u52a8\u7ef4\u62a4\u65f6\u95f4\u6233\n    public $timestamps = true;\n\n    \/\/ \u6a21\u578b\u53ef\u4ee5\u6279\u91cf\u8d4b\u503c\u7684\u5c5e\u6027\n    protected $fillable = ['name', 'email'];\n\n    \/\/ \u6a21\u578b\u7981\u6b62\u6279\u91cf\u8d4b\u503c\u7684\u5c5e\u6027\n    protected $guarded = ['id'];\n\n    \/\/ \u5b9a\u4e49\u6a21\u578b\u7684\u5173\u8054\u5173\u7cfb\n    public function posts()\n    {\n        return $this-&gt;hasMany('App\\Post');\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u4ee3\u7801\u5b9a\u4e49\u4e86\u4e00\u4e2a\u540d\u4e3aUser\u7684Eloquent\u6a21\u578b\u7c7b\uff0c\u5c06\u8be5\u6a21\u578b\u7c7b\u5173\u8054\u5230\u540d\u4e3ausers\u7684\u6570\u636e\u8868\u4e2d\u3002\u5728\u6a21\u578b\u7c7b\u4e2d\uff0c\u53ef\u4ee5\u5b9a\u4e49\u5404\u79cd\u5c5e\u6027\u548c\u65b9\u6cd5\uff0c\u4f8b\u5982\u6a21\u578b\u7684\u4e3b\u952e\u3001\u662f\u5426\u81ea\u52a8\u7ef4\u62a4\u65f6\u95f4\u6233\u3001\u53ef\u6279\u91cf\u8d4b\u503c\u7684\u5c5e\u6027\u548c\u7981\u6b62\u6279\u91cf\u8d4b\u503c\u7684\u5c5e\u6027\u7b49\uff0c\u4ee5\u53ca\u5b9a\u4e49\u6a21\u578b\u7684\u5173\u8054\u5173\u7cfb\uff0c\u4f8b\u5982\u8be5\u6a21\u578b\u7c7b\u4e0ePost\u6a21\u578b\u7c7b\u7684\u4e00\u5bf9\u591a\u5173\u7cfb\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u67e5\u8be2\u6784\u5efa\u5668<\/li>\n<\/ol>\n\n\n\n<p>\u5728Eloquent ORM\u4e2d\uff0c\u4f7f\u7528\u67e5\u8be2\u6784\u5efa\u5668\u53ef\u4ee5\u8f7b\u677e\u5730\u6784\u5efa\u5404\u79cd\u590d\u6742\u7684\u67e5\u8be2\u3002\u67e5\u8be2\u6784\u5efa\u5668\u63d0\u4f9b\u4e86\u4e00\u7cfb\u5217\u65b9\u6cd5\uff0c\u7528\u4e8e\u5b9a\u4e49\u67e5\u8be2\u6761\u4ef6\u3001\u6392\u5e8f\u3001\u5206\u9875\u3001\u805a\u5408\u548c\u8fde\u63a5\u7b49\u64cd\u4f5c\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>\/\/ \u67e5\u8be2\u6240\u6709\u7528\u6237\n$users = User::all();\n\n\/\/ \u67e5\u8be2\u7528\u6237\u540d\u4e3aJohn\u7684\u7528\u6237\n$user = User::where('name', 'John')-&gt;first();\n\n\/\/ \u67e5\u8be2\u7528\u6237\u6570\n$count = User::count();\n\n\/\/ \u67e5\u8be2\u524d10\u4e2a\u7528\u6237\uff0c\u5e76\u6309\u7167\u521b\u5efa\u65f6\u95f4\u5012\u5e8f\u6392\u5217\n$users = User::orderBy('created_at', 'desc')-&gt;take(10)-&gt;get();\n\n\/\/ \u5206\u9875\u67e5\u8be2\u7528\u6237\n$users = User::paginate(10);\n\n\/\/ \u5173\u8054\u67e5\u8be2\n$posts = User::find(1)-&gt;posts()-&gt;where('title', 'like', '%Laravel%')-&gt;get();\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u4ee3\u7801\u4f7f\u7528Eloquent ORM\u7684\u67e5\u8be2\u6784\u5efa\u5668\uff0c\u6267\u884c\u4e86\u5404\u79cd\u67e5\u8be2\u64cd\u4f5c\uff0c\u4f8b\u5982\u67e5\u8be2\u6240\u6709\u7528\u6237\u3001\u67e5\u8be2\u7528\u6237\u540d\u4e3aJohn\u7684<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u7ee7\u7eed<\/p>\n\n\n\n<p>\u7528\u6237\u3001\u67e5\u8be2\u7528\u6237\u6570\u3001\u67e5\u8be2\u524d10\u4e2a\u7528\u6237\u5e76\u6309\u7167\u521b\u5efa\u65f6\u95f4\u5012\u5e8f\u6392\u5217\u3001\u5206\u9875\u67e5\u8be2\u7528\u6237\uff0c\u4ee5\u53ca\u5173\u8054\u67e5\u8be2\u7b49\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u6a21\u578b\u5173\u8054<\/li>\n<\/ol>\n\n\n\n<p>\u5728Eloquent ORM\u4e2d\uff0c\u6a21\u578b\u5173\u8054\u662f\u6307\u4e00\u4e2a\u6a21\u578b\u7c7b\u4e0e\u53e6\u4e00\u4e2a\u6a21\u578b\u7c7b\u4e4b\u95f4\u7684\u5173\u7cfb\u3002\u901a\u8fc7\u5b9a\u4e49\u6a21\u578b\u5173\u8054\uff0c\u53ef\u4ee5\u8f7b\u677e\u5730\u5728\u4e0d\u540c\u7684\u8868\u4e4b\u95f4\u5efa\u7acb\u5173\u7cfb\uff0c\u5e76\u6267\u884c\u5404\u79cd\u67e5\u8be2\u64cd\u4f5c\u3002Eloquent ORM\u652f\u6301\u591a\u79cd\u7c7b\u578b\u7684\u6a21\u578b\u5173\u8054\uff0c\u4f8b\u5982\u4e00\u5bf9\u4e00\u5173\u7cfb\u3001\u4e00\u5bf9\u591a\u5173\u7cfb\u3001\u591a\u5bf9\u591a\u5173\u7cfb\u7b49\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>use Illuminate\\Database\\Eloquent\\Model;\n\nclass User extends Model\n{\n    public function posts()\n    {\n        return $this-&gt;hasMany('App\\Post');\n    }\n\n    public function roles()\n    {\n        return $this-&gt;belongsToMany('App\\Role');\n    }\n}\n\nclass Post extends Model\n{\n    public function user()\n    {\n        return $this-&gt;belongsTo('App\\User');\n    }\n}\n\nclass Role extends Model\n{\n    public function users()\n    {\n        return $this-&gt;belongsToMany('App\\User');\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u4ee3\u7801\u5b9a\u4e49\u4e86\u4e09\u4e2aEloquent\u6a21\u578b\u7c7b\uff1aUser\u3001Post\u548cRole\u3002\u5728User\u6a21\u578b\u7c7b\u4e2d\uff0c\u5b9a\u4e49\u4e86\u4e00\u5bf9\u591a\u5173\u7cfb\uff0c\u4e00\u4e2a\u7528\u6237\u53ef\u4ee5\u6709\u591a\u4e2a\u6587\u7ae0\uff1b\u5728Post\u6a21\u578b\u7c7b\u4e2d\uff0c\u5b9a\u4e49\u4e86\u4e00\u4e2a\u53cd\u5411\u4e00\u5bf9\u591a\u5173\u7cfb\uff0c\u4e00\u4e2a\u6587\u7ae0\u5c5e\u4e8e\u4e00\u4e2a\u7528\u6237\uff1b\u5728Role\u6a21\u578b\u7c7b\u4e2d\uff0c\u5b9a\u4e49\u4e86\u591a\u5bf9\u591a\u5173\u7cfb\uff0c\u4e00\u4e2a\u7528\u6237\u53ef\u4ee5\u62e5\u6709\u591a\u4e2a\u89d2\u8272\uff0c\u4e00\u4e2a\u89d2\u8272\u53ef\u4ee5\u88ab\u591a\u4e2a\u7528\u6237\u62e5\u6709\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u4e8b\u4ef6\u7cfb\u7edf<\/li>\n<\/ol>\n\n\n\n<p>\u5728Eloquent ORM\u4e2d\uff0c\u4e8b\u4ef6\u7cfb\u7edf\u53ef\u4ee5\u7528\u4e8e\u5728\u6a21\u578b\u7684\u751f\u547d\u5468\u671f\u4e2d\u89e6\u53d1\u5404\u79cd\u4e8b\u4ef6\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u5728\u6a21\u578b\u521b\u5efa\u3001\u4fdd\u5b58\u3001\u66f4\u65b0\u3001\u5220\u9664\u7b49\u64cd\u4f5c\u524d\u540e\u89e6\u53d1\u4e8b\u4ef6\uff0c\u6267\u884c\u5404\u79cd\u4e1a\u52a1\u903b\u8f91\u3002\u4e8b\u4ef6\u7cfb\u7edf\u63d0\u4f9b\u4e86\u4e00\u79cd\u7b80\u5355\u3001\u7075\u6d3b\u7684\u65b9\u5f0f\uff0c\u7528\u4e8e\u7ba1\u7406\u5e94\u7528\u7a0b\u5e8f\u4e2d\u7684\u5404\u79cd\u903b\u8f91\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"5\">\n<li>\u6570\u636e\u5e93\u8fc1\u79fb<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel\u6846\u67b6\u4e2d\uff0c\u6570\u636e\u5e93\u8fc1\u79fb\u662f\u6307\u5c06\u6570\u636e\u5e93\u8868\u7ed3\u6784\u540c\u6b65\u5230\u6570\u636e\u5e93\u4e2d\u7684\u8fc7\u7a0b\u3002\u901a\u8fc7\u4f7f\u7528\u6570\u636e\u5e93\u8fc1\u79fb\uff0c\u53ef\u4ee5\u8f7b\u677e\u5730\u7ba1\u7406\u6570\u636e\u5e93\u8868\u7ed3\u6784\uff0c\u800c\u4e0d\u9700\u8981\u624b\u52a8\u7f16\u5199\u548c\u6267\u884c\u590d\u6742\u7684SQL\u8bed\u53e5\u3002Laravel\u7684\u8fc1\u79fb\u7cfb\u7edf\u63d0\u4f9b\u4e86\u4e00\u79cd\u7b80\u5355\u3001\u53ef\u91cd\u590d\u7684\u65b9\u5f0f\uff0c\u7528\u4e8e\u521b\u5efa\u548c\u7ba1\u7406\u6570\u636e\u5e93\u8868\u7ed3\u6784\uff0c\u5e76\u8bb0\u5f55\u6bcf\u4e2a\u8fc1\u79fb\u7684\u72b6\u6001\u548c\u7248\u672c\u53f7\u7b49\u4fe1\u606f\u3002<\/p>\n\n\n\n<p>\u603b\u4e4b\uff0cEloquent ORM\u662fLaravel\u6846\u67b6\u4e2d\u7684\u4e00\u4e2a\u91cd\u8981\u7ec4\u6210\u90e8\u5206\uff0c\u5b83\u63d0\u4f9b\u4e86\u4e00\u79cd\u7b80\u5355\u3001\u7075\u6d3b\u7684\u65b9\u5f0f\uff0c\u7528\u4e8e\u4e0e\u6570\u636e\u5e93\u4ea4\u4e92\u3002\u901a\u8fc7\u4f7f\u7528Eloquent ORM\uff0c\u53ef\u4ee5\u8f7b\u677e\u5730\u5b9a\u4e49\u548c\u64cd\u4f5c\u6570\u636e\u5e93\u8868\uff0c\u6267\u884c\u5404\u79cd\u590d\u6742\u7684\u67e5\u8be2\u64cd\u4f5c\uff0c\u4ee5\u53ca\u5efa\u7acb\u5404\u79cd\u7c7b\u578b\u7684\u6a21\u578b\u5173\u8054\u3002Eloquent ORM\u8fd8\u63d0\u4f9b\u4e86\u4e8b\u4ef6\u7cfb\u7edf\u548c\u6570\u636e\u5e93\u8fc1\u79fb\u7b49\u529f\u80fd\uff0c\u4f7f\u5f97\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u8f7b\u677e\u5730\u7ba1\u7406\u5e94\u7528\u7a0b\u5e8f\u4e2d\u7684\u5404\u79cd\u903b\u8f91\u548c\u6570\u636e\u5e93\u7ed3\u6784\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91ca\u521b\u5efa\u6a21\u578b\u4e0e\u8fc1\u79fb\u6587\u4ef6<\/p>\n\n\n\n<p>\u5728Laravel\u6846\u67b6\u4e2d\uff0c\u521b\u5efa\u6a21\u578b\u548c\u8fc1\u79fb\u6587\u4ef6\u662f\u5b9a\u4e49\u548c\u7ba1\u7406\u6570\u636e\u5e93\u7ed3\u6784\u7684\u91cd\u8981\u6b65\u9aa4\u3002\u4e0b\u9762\u5206\u522b\u4ecb\u7ecd\u5982\u4f55\u521b\u5efa\u6a21\u578b\u548c\u8fc1\u79fb\u6587\u4ef6\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u521b\u5efa\u6a21\u578b<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528artisan\u547d\u4ee4\u884c\u5de5\u5177\u5feb\u901f\u521b\u5efa\u6a21\u578b\u7c7b\uff0c\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">goCopy code<code>php artisan make:model ModelName\n<\/code><\/pre>\n\n\n\n<p>\u5176\u4e2d\uff0cModelName\u662f\u8981\u521b\u5efa\u7684\u6a21\u578b\u7c7b\u7684\u540d\u79f0\u3002\u8be5\u547d\u4ee4\u5c06\u5728app\u76ee\u5f55\u4e2d\u521b\u5efa\u4e00\u4e2a\u540d\u4e3aModelName.php\u7684\u6a21\u578b\u7c7b\u6587\u4ef6\u3002<\/p>\n\n\n\n<p>\u5728\u6a21\u578b\u7c7b\u4e2d\uff0c\u53ef\u4ee5\u5b9a\u4e49\u6a21\u578b\u5bf9\u5e94\u7684\u6570\u636e\u8868\u3001\u4e3b\u952e\u3001\u53ef\u4ee5\u6279\u91cf\u8d4b\u503c\u7684\u5c5e\u6027\u3001\u5173\u8054\u5173\u7cfb\u7b49\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>namespace App;\n\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass User extends Model\n{\n    \/**\n     * The table associated with the model.\n     *\n     * @var string\n     *\/\n    protected $table = 'users';\n\n    \/**\n     * The primary key associated with the table.\n     *\n     * @var string\n     *\/\n    protected $primaryKey = 'id';\n\n    \/**\n     * The attributes that are mass assignable.\n     *\n     * @var array\n     *\/\n    protected $fillable = [\n        'name', 'email',\n    ];\n\n    \/**\n     * The attributes that should be hidden for arrays.\n     *\n     * @var array\n     *\/\n    protected $hidden = [\n        'password',\n    ];\n\n    \/**\n     * Get the comments for the blog post.\n     *\/\n    public function posts()\n    {\n        return $this-&gt;hasMany('App\\Post');\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u4ee3\u7801\u5b9a\u4e49\u4e86\u4e00\u4e2a\u540d\u4e3aUser\u7684\u6a21\u578b\u7c7b\uff0c\u5c06\u8be5\u6a21\u578b\u7c7b\u5173\u8054\u5230\u540d\u4e3ausers\u7684\u6570\u636e\u8868\u4e2d\u3002\u5728\u6a21\u578b\u7c7b\u4e2d\uff0c\u5b9a\u4e49\u4e86\u6570\u636e\u8868\u3001\u4e3b\u952e\u3001\u53ef\u4ee5\u6279\u91cf\u8d4b\u503c\u7684\u5c5e\u6027\u3001\u9690\u85cf\u7684\u5c5e\u6027\u548c\u5173\u8054\u5173\u7cfb\u7b49\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u521b\u5efa\u8fc1\u79fb\u6587\u4ef6<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528artisan\u547d\u4ee4\u884c\u5de5\u5177\u5feb\u901f\u521b\u5efa\u8fc1\u79fb\u6587\u4ef6\uff0c\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">goCopy code<code>php artisan make:migration create_table_name_table\n<\/code><\/pre>\n\n\n\n<p>\u5176\u4e2d\uff0ctable_name\u662f\u8981\u521b\u5efa\u7684\u6570\u636e\u8868\u540d\u79f0\u3002\u8be5\u547d\u4ee4\u5c06\u5728database\/migrations\u76ee\u5f55\u4e2d\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u8fc1\u79fb\u6587\u4ef6\uff0c\u6587\u4ef6\u540d\u4e3acreate_table_name_table.php\u3002<\/p>\n\n\n\n<p>\u5728\u8fc1\u79fb\u6587\u4ef6\u4e2d\uff0c\u53ef\u4ee5\u5b9a\u4e49\u8981\u521b\u5efa\u3001\u4fee\u6539\u6216\u5220\u9664\u7684\u6570\u636e\u8868\u7684\u7ed3\u6784\u3002\u4f8b\u5982\uff0c\u521b\u5efa\u4e00\u4e2a\u540d\u4e3ausers\u7684\u6570\u636e\u8868\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>use Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass CreateUsersTable extends Migration\n{\n    \/**\n     * Run the migrations.\n     *\n     * @return void\n     *\/\n    public function up()\n    {\n        Schema::create('users', function (Blueprint $table) {\n            $table-&gt;increments('id');\n            $table-&gt;string('name');\n            $table-&gt;string('email')-&gt;unique();\n            $table-&gt;string('password');\n            $table-&gt;rememberToken();\n            $table-&gt;timestamps();\n        });\n    }\n\n    \/**\n     * Reverse the migrations.\n     *\n     * @return void\n     *\/\n    public function down()\n    {\n        Schema::dropIfExists('users');\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u4ee3\u7801\u521b\u5efa\u4e86\u4e00\u4e2a\u540d\u4e3ausers\u7684\u6570\u636e\u8868\uff0c\u5305\u542bid\u3001name\u3001email\u3001password\u3001remember_token\u3001created_at\u548cupdated_at\u7b49\u5b57\u6bb5\u3002<\/p>\n\n\n\n<p>\u5728\u521b\u5efa\u8fc1\u79fb\u6587\u4ef6\u540e\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u6267\u884c\u8fc1\u79fb\u6587\u4ef6\uff0c\u5c06\u6570\u636e\u5e93\u8868\u7ed3\u6784\u540c\u6b65\u5230\u6570\u636e\u5e93\u4e2d\uff1a<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u7ee7\u7eed<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Copy code<code>php artisan migrate\n<\/code><\/pre>\n\n\n\n<p>\u6267\u884c\u8be5\u547d\u4ee4\u540e\uff0cLaravel\u5c06\u8bfb\u53d6\u6240\u6709\u672a\u6267\u884c\u7684\u8fc1\u79fb\u6587\u4ef6\uff0c\u5e76\u5c06\u6570\u636e\u5e93\u8868\u7ed3\u6784\u540c\u6b65\u5230\u6570\u636e\u5e93\u4e2d\u3002<\/p>\n\n\n\n<p>\u603b\u4e4b\uff0c\u521b\u5efa\u6a21\u578b\u548c\u8fc1\u79fb\u6587\u4ef6\u662f\u5b9a\u4e49\u548c\u7ba1\u7406Laravel\u5e94\u7528\u7a0b\u5e8f\u4e2d\u7684\u6570\u636e\u5e93\u7ed3\u6784\u7684\u91cd\u8981\u6b65\u9aa4\u3002\u901a\u8fc7\u4f7f\u7528artisan\u547d\u4ee4\u884c\u5de5\u5177\uff0c\u53ef\u4ee5\u5feb\u901f\u521b\u5efa\u6a21\u578b\u548c\u8fc1\u79fb\u6587\u4ef6\uff0c\u5e76\u5b9a\u4e49\u6570\u636e\u8868\u7684\u7ed3\u6784\u3001\u4e3b\u952e\u3001\u5b57\u6bb5\u3001\u7d22\u5f15\u548c\u5173\u7cfb\u7b49\u3002\u6267\u884c\u8fc1\u79fb\u6587\u4ef6\u53ef\u4ee5\u5c06\u6570\u636e\u8868\u7ed3\u6784\u540c\u6b65\u5230\u6570\u636e\u5e93\u4e2d\uff0c\u4f7f\u5f97\u5e94\u7528\u7a0b\u5e8f\u53ef\u4ee5\u4f7f\u7528\u8fd9\u4e9b\u6570\u636e\u8868\u8fdb\u884c\u5404\u79cd\u6570\u636e\u5e93\u64cd\u4f5c\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91caEloquent\u5173\u7cfb<\/p>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0cEloquent\u63d0\u4f9b\u4e86\u591a\u79cd\u7c7b\u578b\u7684\u5173\u7cfb\uff0c\u7528\u4e8e\u5728\u4e0d\u540c\u7684\u8868\u4e4b\u95f4\u5efa\u7acb\u5173\u7cfb\u3002\u4ee5\u4e0b\u662fEloquent\u652f\u6301\u7684\u4e00\u4e9b\u5e38\u7528\u5173\u7cfb\u7c7b\u578b\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u4e00\u5bf9\u4e00\u5173\u7cfb<\/li>\n<\/ol>\n\n\n\n<p>\u4e00\u5bf9\u4e00\u5173\u7cfb\u662f\u6307\u4e24\u4e2a\u8868\u4e4b\u95f4\u7684\u5173\u7cfb\uff0c\u5176\u4e2d\u6bcf\u4e2a\u8bb0\u5f55\u5728\u53e6\u4e00\u4e2a\u8868\u4e2d\u53ea\u6709\u4e00\u4e2a\u5339\u914d\u9879\u3002\u5728Eloquent\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528hasOne\u548cbelongsTo\u65b9\u6cd5\u6765\u5b9a\u4e49\u4e00\u5bf9\u4e00\u5173\u7cfb\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>class User extends Model\n{\n    public function phone()\n    {\n        return $this-&gt;hasOne('App\\Phone');\n    }\n}\n\nclass Phone extends Model\n{\n    public function user()\n    {\n        return $this-&gt;belongsTo('App\\User');\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u4f8b\u5b50\u4e2d\uff0c\u4e00\u4e2a\u7528\u6237\u62e5\u6709\u4e00\u4e2a\u7535\u8bdd\uff0c\u4e00\u4e2a\u7535\u8bdd\u5c5e\u4e8e\u4e00\u4e2a\u7528\u6237\u3002\u5728User\u6a21\u578b\u4e2d\uff0c\u5b9a\u4e49\u4e86\u4e00\u4e2ahasOne\u5173\u7cfb\uff0c\u5c06\u8be5\u6a21\u578b\u5173\u8054\u5230Phone\u6a21\u578b\u4e2d\uff1b\u5728Phone\u6a21\u578b\u4e2d\uff0c\u5b9a\u4e49\u4e86\u4e00\u4e2abelongsTo\u5173\u7cfb\uff0c\u5c06\u8be5\u6a21\u578b\u5173\u8054\u5230User\u6a21\u578b\u4e2d\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u4e00\u5bf9\u591a\u5173\u7cfb<\/li>\n<\/ol>\n\n\n\n<p>\u4e00\u5bf9\u591a\u5173\u7cfb\u662f\u6307\u4e24\u4e2a\u8868\u4e4b\u95f4\u7684\u5173\u7cfb\uff0c\u5176\u4e2d\u4e00\u4e2a\u8868\u4e2d\u7684\u6bcf\u4e2a\u8bb0\u5f55\u53ef\u4ee5\u4e0e\u53e6\u4e00\u4e2a\u8868\u4e2d\u7684\u591a\u4e2a\u8bb0\u5f55\u76f8\u5173\u8054\u3002\u5728Eloquent\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528hasMany\u548cbelongsTo\u65b9\u6cd5\u6765\u5b9a\u4e49\u4e00\u5bf9\u591a\u5173\u7cfb\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>class User extends Model\n{\n    public function posts()\n    {\n        return $this-&gt;hasMany('App\\Post');\n    }\n}\n\nclass Post extends Model\n{\n    public function user()\n    {\n        return $this-&gt;belongsTo('App\\User');\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u4f8b\u5b50\u4e2d\uff0c\u4e00\u4e2a\u7528\u6237\u53ef\u4ee5\u62e5\u6709\u591a\u4e2a\u6587\u7ae0\uff0c\u4e00\u4e2a\u6587\u7ae0\u5c5e\u4e8e\u4e00\u4e2a\u7528\u6237\u3002\u5728User\u6a21\u578b\u4e2d\uff0c\u5b9a\u4e49\u4e86\u4e00\u4e2ahasMany\u5173\u7cfb\uff0c\u5c06\u8be5\u6a21\u578b\u5173\u8054\u5230Post\u6a21\u578b\u4e2d\uff1b\u5728Post\u6a21\u578b\u4e2d\uff0c\u5b9a\u4e49\u4e86\u4e00\u4e2abelongsTo\u5173\u7cfb\uff0c\u5c06\u8be5\u6a21\u578b\u5173\u8054\u5230User\u6a21\u578b\u4e2d\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u591a\u5bf9\u591a\u5173\u7cfb<\/li>\n<\/ol>\n\n\n\n<p>\u591a\u5bf9\u591a\u5173\u7cfb\u662f\u6307\u4e24\u4e2a\u8868\u4e4b\u95f4\u7684\u5173\u7cfb\uff0c\u5176\u4e2d\u6bcf\u4e2a\u8868\u4e2d\u7684\u6bcf\u4e2a\u8bb0\u5f55\u90fd\u53ef\u4ee5\u4e0e\u53e6\u4e00\u4e2a\u8868\u4e2d\u7684\u591a\u4e2a\u8bb0\u5f55\u76f8\u5173\u8054\u3002\u5728Eloquent\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528belongsToMany\u65b9\u6cd5\u6765\u5b9a\u4e49\u591a\u5bf9\u591a\u5173\u7cfb\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>class User extends Model\n{\n    public function roles()\n    {\n        return $this-&gt;belongsToMany('App\\Role');\n    }\n}\n\nclass Role extends Model\n{\n    public function users()\n    {\n        return $this-&gt;belongsToMany('App\\User');\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u4f8b\u5b50\u4e2d\uff0c\u4e00\u4e2a\u7528\u6237\u53ef\u4ee5\u62e5\u6709\u591a\u4e2a\u89d2\u8272\uff0c\u4e00\u4e2a\u89d2\u8272\u53ef\u4ee5\u88ab\u591a\u4e2a\u7528\u6237\u62e5\u6709\u3002\u5728User\u6a21\u578b\u4e2d\uff0c\u5b9a\u4e49\u4e86\u4e00\u4e2abelongsToMany\u5173\u7cfb\uff0c\u5c06\u8be5\u6a21\u578b\u5173\u8054\u5230Role\u6a21\u578b\u4e2d\uff1b\u5728Role\u6a21\u578b\u4e2d\uff0c\u5b9a\u4e49\u4e86\u4e00\u4e2abelongsToMany\u5173\u7cfb\uff0c\u5c06\u8be5\u6a21\u578b\u5173\u8054\u5230User\u6a21\u578b\u4e2d\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u591a\u6001\u5173\u7cfb<\/li>\n<\/ol>\n\n\n\n<p>\u591a\u6001\u5173\u7cfb\u662f\u6307\u4e24\u4e2a\u8868\u4e4b\u95f4\u7684\u5173\u7cfb\uff0c\u5176\u4e2d\u4e00\u4e2a\u8868\u4e2d\u7684\u8bb0\u5f55\u53ef\u4ee5\u4e0e\u591a\u4e2a\u5176\u4ed6\u8868\u4e2d\u7684\u8bb0\u5f55\u76f8\u5173\u8054\u3002\u5728Eloquent\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528morphTo\u548cmorphMany\u65b9\u6cd5\u6765\u5b9a\u4e49\u591a\u6001\u5173\u7cfb\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>class Comment extends Model\n{\n    public function commentable()\n    {\n        return $this-&gt;morphTo();\n    }\n}\n\nclass Post extends Model\n{\n    public function comments()\n    {\n        return $this-&gt;morph\n<\/code><\/pre>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u7ee7\u7eed<\/p>\n\n\n\n<p>Many(&#8216;App\\Comment&#8217;, &#8216;commentable&#8217;); } }<\/p>\n\n\n\n<p>class Video extends Model { public function comments() { return $this-&gt;morphMany(&#8216;App\\Comment&#8217;, &#8216;commentable&#8217;); } }<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cssCopy code<code>\n\u5728\u4e0a\u9762\u7684\u4f8b\u5b50\u4e2d\uff0c\u4e00\u4e2a\u8bc4\u8bba\u53ef\u4ee5\u5c5e\u4e8e\u4e00\u4e2a\u6587\u7ae0\u6216\u4e00\u4e2a\u89c6\u9891\uff0c\u4e00\u4e2a\u6587\u7ae0\u53ef\u4ee5\u62e5\u6709\u591a\u4e2a\u8bc4\u8bba\uff0c\u4e00\u4e2a\u89c6\u9891\u4e5f\u53ef\u4ee5\u62e5\u6709\u591a\u4e2a\u8bc4\u8bba\u3002\u5728Comment\u6a21\u578b\u4e2d\uff0c\u5b9a\u4e49\u4e86\u4e00\u4e2amorphTo\u5173\u7cfb\uff0c\u5c06\u8be5\u6a21\u578b\u5173\u8054\u5230Post\u548cVideo\u6a21\u578b\u4e2d\uff1b\u5728Post\u548cVideo\u6a21\u578b\u4e2d\uff0c\u90fd\u5b9a\u4e49\u4e86\u4e00\u4e2amorphMany\u5173\u7cfb\uff0c\u5c06\u8be5\u6a21\u578b\u5173\u8054\u5230Comment\u6a21\u578b\u4e2d\u3002\n\n\u603b\u4e4b\uff0cEloquent\u5173\u7cfb\u662fLaravel\u4e2d\u4e00\u4e2a\u975e\u5e38\u6709\u7528\u7684\u7279\u6027\uff0c\u7528\u4e8e\u5728\u4e0d\u540c\u7684\u8868\u4e4b\u95f4\u5efa\u7acb\u5173\u7cfb\u3002\u901a\u8fc7\u5b9a\u4e49Eloquent\u5173\u7cfb\uff0c\u53ef\u4ee5\u8f7b\u677e\u5730\u6267\u884c\u5404\u79cd\u67e5\u8be2\u64cd\u4f5c\uff0c\u4f8b\u5982\u83b7\u53d6\u4e00\u4e2a\u6a21\u578b\u7684\u5173\u8054\u6a21\u578b\u3001\u67e5\u8be2\u5173\u8054\u6a21\u578b\u7684\u6570\u91cf\u3001\u6392\u5e8f\u548c\u5206\u9875\u7b49\u3002\u5728\u5b9a\u4e49Eloquent\u5173\u7cfb\u65f6\uff0c\u53ef\u4ee5\u4f7f\u7528\u4e0d\u540c\u7684\u65b9\u6cd5\u548c\u53c2\u6570\uff0c\u4ee5\u9002\u5e94\u4e0d\u540c\u7684\u6570\u636e\u6a21\u578b\u548c\u67e5\u8be2\u9700\u6c42\u3002\n<\/code><\/pre>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91ca\u521b\u5efa\u8868\u5355<\/p>\n\n\n\n<p>\u5728Web\u5e94\u7528\u7a0b\u5e8f\u4e2d\uff0c\u8868\u5355\u662f\u4e0e\u7528\u6237\u4ea4\u4e92\u7684\u4e3b\u8981\u65b9\u5f0f\u4e4b\u4e00\u3002Laravel\u63d0\u4f9b\u4e86\u8bb8\u591a\u529f\u80fd\u5f3a\u5927\u7684\u65b9\u6cd5\u6765\u521b\u5efa\u8868\u5355\u3002\u4e0b\u9762\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528Laravel\u521b\u5efa\u8868\u5355\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u521b\u5efa\u8def\u7531<\/li>\n<\/ol>\n\n\n\n<p>\u9996\u5148\uff0c\u9700\u8981\u5728routes\/web.php\u6587\u4ef6\u4e2d\u5b9a\u4e49\u4e00\u4e2a\u8def\u7531\uff0c\u4ee5\u4fbf\u5c06\u8bf7\u6c42\u53d1\u9001\u5230\u8868\u5355\u7684\u63a7\u5236\u5668\u65b9\u6cd5\u4e2d\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>Route::get('\/form', 'FormController@index');\nRoute::post('\/form', 'FormController@store');\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u4f8b\u5b50\u4e2d\uff0c\u5b9a\u4e49\u4e86\u4e24\u4e2a\u8def\u7531\uff0c\u4e00\u4e2aGET\u8bf7\u6c42\u7528\u4e8e\u663e\u793a\u8868\u5355\uff0c\u4e00\u4e2aPOST\u8bf7\u6c42\u7528\u4e8e\u63d0\u4ea4\u8868\u5355\u6570\u636e\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u521b\u5efa\u8868\u5355<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528Laravel Collective\u7ec4\u4ef6\u6765\u5feb\u901f\u521b\u5efaHTML\u8868\u5355\u3002\u9996\u5148\uff0c\u9700\u8981\u5728composer.json\u6587\u4ef6\u4e2d\u6dfb\u52a0laravelcollective\/html\u7ec4\u4ef6\u7684\u4f9d\u8d56\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">jsonCopy code<code>\"require\": {\n    \"laravelcollective\/html\": \"^5.4\"\n}\n<\/code><\/pre>\n\n\n\n<p>\u7136\u540e\uff0c\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u6765\u5b89\u88c5\u4f9d\u8d56\u9879\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sqlCopy code<code>composer update\n<\/code><\/pre>\n\n\n\n<p>\u5728\u8868\u5355\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528Laravel Collective\u7ec4\u4ef6\u7684Form\u548cHtml\u8f85\u52a9\u51fd\u6570\u6765\u521b\u5efa\u8868\u5355\u3002\u4f8b\u5982\uff0c\u521b\u5efa\u4e00\u4e2a\u5305\u542b\u6587\u672c\u8f93\u5165\u6846\u3001\u5bc6\u7801\u8f93\u5165\u6846\u3001\u4e0b\u62c9\u5217\u8868\u548c\u63d0\u4ea4\u6309\u94ae\u7684\u8868\u5355\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>{!! Form::open(['url' =&gt; '\/form']) !!}\n    {!! Form::label('name', 'Name') !!}\n    {!! Form::text('name') !!}\n    {!! Form::label('password', 'Password') !!}\n    {!! Form::password('password') !!}\n    {!! Form::label('gender', 'Gender') !!}\n    {!! Form::select('gender', ['male' =&gt; 'Male', 'female' =&gt; 'Female'], 'male') !!}\n    {!! Form::submit('Submit') !!}\n{!! Form::close() !!}\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u4ee3\u7801\u4e2d\uff0cForm::open\u65b9\u6cd5\u7528\u4e8e\u6253\u5f00\u4e00\u4e2a\u8868\u5355\uff0c\u6307\u5b9a\u4e86\u8868\u5355\u7684\u76ee\u6807URL\uff1bForm::label\u65b9\u6cd5\u7528\u4e8e\u521b\u5efa\u6807\u7b7e\uff1bForm::text\u548cForm::password\u65b9\u6cd5\u7528\u4e8e\u521b\u5efa\u6587\u672c\u8f93\u5165\u6846\u548c\u5bc6\u7801\u8f93\u5165\u6846\uff1bForm::select\u65b9\u6cd5\u7528\u4e8e\u521b\u5efa\u4e0b\u62c9\u5217\u8868\uff1bForm::submit\u65b9\u6cd5\u7528\u4e8e\u521b\u5efa\u63d0\u4ea4\u6309\u94ae\u3002{!! !!}\u8bed\u6cd5\u7528\u4e8e\u8f93\u51faHTML\u4ee3\u7801\uff0c\u4ee5\u4fbf\u5728\u89c6\u56fe\u4e2d\u5448\u73b0\u8868\u5355\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u5904\u7406\u8868\u5355\u6570\u636e<\/li>\n<\/ol>\n\n\n\n<p>\u5728\u63a7\u5236\u5668\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528$request\u53d8\u91cf\u83b7\u53d6\u8868\u5355\u63d0\u4ea4\u7684\u6570\u636e\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>public function store(Request $request)\n{\n    $name = $request-&gt;input('name');\n    $password = $request-&gt;input('password');\n    $gender = $request-&gt;input('gender');\n\n    \/\/ \u5c06\u6570\u636e\u4fdd\u5b58\u5230\u6570\u636e\u5e93\u6216\u6267\u884c\u5176\u4ed6\u64cd\u4f5c\n}\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u4f8b\u5b50\u4e2d\uff0c$request\u53d8\u91cf\u5305\u542b\u8868\u5355\u63d0\u4ea4\u7684\u6570\u636e\u3002\u4f7f\u7528$input\u65b9\u6cd5\u53ef\u4ee5\u83b7\u53d6\u8868\u5355\u5b57\u6bb5\u7684\u503c\u3002<\/p>\n\n\n\n<p>\u603b\u4e4b\uff0c\u4f7f\u7528Laravel\u53ef\u4ee5\u8f7b\u677e\u5730\u521b\u5efaHTML\u8868\u5355\uff0c\u4f7f\u7528\u6237\u53ef\u4ee5\u5411Web\u5e94\u7528\u7a0b\u5e8f\u63d0\u4ea4\u6570\u636e\u3002\u901a\u8fc7\u4f7f\u7528Laravel Collective\u7ec4\u4ef6\u548c$request\u53d8\u91cf\uff0c\u53ef\u4ee5\u5feb\u901f\u521b\u5efa\u548c\u5904\u7406\u8868\u5355\u6570\u636e\uff0c\u5e76\u5c06\u5176\u4fdd\u5b58\u5230\u6570\u636e\u5e93\u4e2d\u6216\u6267\u884c\u5176\u4ed6\u64cd\u4f5c\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91ca\u63a5\u6536\u8868\u5355\u6570\u636e\u4e0e\u5904\u7406<\/p>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u63a5\u6536\u8868\u5355\u6570\u636e\u5e76\u8fdb\u884c\u5904\u7406\u901a\u5e38\u662f\u5728\u63a7\u5236\u5668\u4e2d\u5b8c\u6210\u7684\u3002\u63a7\u5236\u5668\u53ef\u4ee5\u901a\u8fc7\u4f9d\u8d56\u6ce8\u5165Request\u5bf9\u8c61\u6765\u83b7\u53d6\u8868\u5355\u6570\u636e\uff0c\u7136\u540e\u5c06\u5176\u5904\u7406\u5e76\u5c06\u7ed3\u679c\u8fd4\u56de\u7ed9\u7528\u6237\u3002<\/p>\n\n\n\n<p>\u4ee5\u4e0b\u662f\u5728\u63a7\u5236\u5668\u4e2d\u63a5\u6536\u548c\u5904\u7406\u8868\u5355\u6570\u636e\u7684\u57fa\u672c\u6b65\u9aa4\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u5b9a\u4e49\u8def\u7531<\/li>\n<\/ol>\n\n\n\n<p>\u5728routes\/web.php\u6587\u4ef6\u4e2d\u5b9a\u4e49\u4e00\u4e2a\u8def\u7531\uff0c\u4ee5\u4fbf\u5c06\u8bf7\u6c42\u53d1\u9001\u5230\u8868\u5355\u7684\u63a7\u5236\u5668\u65b9\u6cd5\u4e2d\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>Route::get('\/form', 'FormController@index');\nRoute::post('\/form', 'FormController@store');\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u4f8b\u5b50\u4e2d\uff0c\u5b9a\u4e49\u4e86\u4e24\u4e2a\u8def\u7531\uff0c\u4e00\u4e2aGET\u8bf7\u6c42\u7528\u4e8e\u663e\u793a\u8868\u5355\uff0c\u4e00\u4e2aPOST\u8bf7\u6c42\u7528\u4e8e\u63d0\u4ea4\u8868\u5355\u6570\u636e\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u521b\u5efa\u8868\u5355<\/li>\n<\/ol>\n\n\n\n<p>\u5728\u89c6\u56fe\u4e2d\u521b\u5efa\u4e00\u4e2a\u8868\u5355\uff0c\u4ee5\u4fbf\u7528\u6237\u53ef\u4ee5\u8f93\u5165\u6570\u636e\u3002\u4f8b\u5982\uff0c\u521b\u5efa\u4e00\u4e2a\u5305\u542b\u6587\u672c\u8f93\u5165\u6846\u3001\u5bc6\u7801\u8f93\u5165\u6846\u3001\u4e0b\u62c9\u5217\u8868\u548c\u63d0\u4ea4\u6309\u94ae\u7684\u8868\u5355\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>&lt;form method=\"POST\" action=\"\/form\"&gt;\n    @csrf\n    &lt;label for=\"name\"&gt;Name&lt;\/label&gt;\n    &lt;input type=\"text\" id=\"name\" name=\"name\"&gt;\n\n    &lt;label for=\"password\"&gt;Password&lt;\/label&gt;\n    &lt;input type=\"password\" id=\"password\" name=\"password\"&gt;\n\n    &lt;label for=\"gender\"&gt;Gender&lt;\/label&gt;\n    &lt;select id=\"gender\" name=\"gender\"&gt;\n        &lt;option value=\"male\"&gt;Male&lt;\/option&gt;\n        &lt;option value=\"female\"&gt;Female&lt;\/option&gt;\n    &lt;\/select&gt;\n\n    &lt;button type=\"submit\"&gt;Submit&lt;\/button&gt;\n&lt;\/form&gt;\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u4ee3\u7801\u4e2d\uff0c\u4f7f\u7528&lt;form&gt;\u6807\u7b7e\u521b\u5efa\u8868\u5355\uff0c\u5e76\u6307\u5b9a\u4e86\u8868\u5355\u7684\u76ee\u6807URL\u548cHTTP\u65b9\u6cd5\u3002@csrf\u6307\u4ee4\u7528\u4e8e\u751f\u6210\u4e00\u4e2aCSRF\u4ee4\u724c\uff0c\u4ee5\u4fdd\u62a4\u8868\u5355\u514d\u53d7\u8de8\u7ad9\u8bf7\u6c42\u4f2a\u9020\u653b\u51fb\u3002\u4f7f\u7528&lt;input&gt;\u548c&lt;select&gt;\u6807\u7b7e\u521b\u5efa\u8868\u5355\u5b57\u6bb5\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u63a5\u6536\u8868\u5355\u6570\u636e\u5e76\u5904\u7406<\/li>\n<\/ol>\n\n\n\n<p>\u5728\u63a7\u5236\u5668\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528Request\u5bf9\u8c61\u6765\u83b7\u53d6\u8868\u5355\u63d0\u4ea4\u7684\u6570\u636e\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>use Illuminate\\Http\\Request;\n\nclass FormController extends Controller\n{\n    public function store(Request $request)\n    {\n        $name = $request-&gt;input('name');\n        $password = $request-&gt;input('password');\n        $gender = $request-&gt;input('gender');\n\n        \/\/ \u5904\u7406\u8868\u5355\u6570\u636e\n\n        return redirect('\/form')-&gt;with('success', 'Form submitted successfully.');\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u4f8b\u5b50\u4e2d\uff0c$request\u53d8\u91cf\u5305\u542b\u8868\u5355\u63d0\u4ea4\u7684\u6570\u636e\u3002\u4f7f\u7528input\u65b9\u6cd5\u53ef\u4ee5\u83b7\u53d6\u8868\u5355\u5b57\u6bb5\u7684\u503c\u3002\u5904\u7406\u8868\u5355\u6570\u636e\u7684\u4ee3\u7801\u53ef\u4ee5\u5305\u62ec\u5c06\u6570\u636e\u4fdd\u5b58\u5230\u6570\u636e\u5e93\u4e2d\u3001\u53d1\u9001\u7535\u5b50\u90ae\u4ef6\u6216\u6267\u884c\u5176\u4ed6\u64cd\u4f5c\u3002\u5728\u5904\u7406\u5b8c\u6570\u636e\u540e\uff0c\u4f7f\u7528redirect\u65b9\u6cd5\u5c06\u7528\u6237\u91cd\u5b9a\u5411\u56de\u8868\u5355\u9875\u9762\uff0c\u5e76\u4f7f\u7528with\u65b9\u6cd5\u5c06\u6210\u529f\u6d88\u606f\u95ea\u5b58\u5230\u4f1a\u8bdd\u4e2d\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u663e\u793a\u53cd\u9988\u4fe1\u606f<\/li>\n<\/ol>\n\n\n\n<p>\u5728\u89c6\u56fe\u4e2d\uff0c\u53ef\u4ee5\u663e\u793a\u53cd\u9988\u4fe1\u606f\uff0c\u4ee5\u544a\u8bc9\u7528\u6237\u8868\u5355\u6570\u636e\u5df2\u7ecf\u63d0\u4ea4\u6210\u529f\u6216\u53d1\u751f\u4e86\u9519\u8bef\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>@if (session('success'))\n    &lt;div class=\"alert alert-success\"&gt;\n        {{ session('success') }}\n    &lt;\/div&gt;\n@endif\n\n@if ($errors-&gt;any())\n    &lt;div class=\"alert alert-danger\"&gt;\n        &lt;ul&gt;\n            @foreach ($errors-&gt;all() as $error)\n                &lt;li&gt;{{ $error }}&lt;\/li&gt;\n<\/code><\/pre>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u7ee7\u7eed<\/p>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u4ee3\u7801\u4e2d\uff0c\u4f7f\u7528session(&#8216;success&#8217;)\u51fd\u6570\u83b7\u53d6\u4e4b\u524d\u4f7f\u7528with\u65b9\u6cd5\u95ea\u5b58\u7684\u6210\u529f\u6d88\u606f\u3002\u5982\u679c\u5b58\u5728\u6210\u529f\u6d88\u606f\uff0c\u5219\u4f7f\u7528alert-success\u7c7b\u663e\u793a\u6d88\u606f\u3002<\/p>\n\n\n\n<p>\u4f7f\u7528$errors\u53d8\u91cf\u53ef\u4ee5\u83b7\u53d6\u8868\u5355\u9a8c\u8bc1\u9519\u8bef\u3002\u5982\u679c\u8868\u5355\u9a8c\u8bc1\u5931\u8d25\uff0c\u5219\u53ef\u4ee5\u4f7f\u7528alert-danger\u7c7b\u663e\u793a\u9519\u8bef\u6d88\u606f\uff0c\u5e76\u4f7f\u7528$errors-&gt;all()\u65b9\u6cd5\u83b7\u53d6\u6240\u6709\u9519\u8bef\u6d88\u606f\uff0c\u7136\u540e\u5728\u5217\u8868\u4e2d\u663e\u793a\u5b83\u4eec\u3002<\/p>\n\n\n\n<p>\u603b\u4e4b\uff0c\u4f7f\u7528Laravel\u53ef\u4ee5\u8f7b\u677e\u5730\u63a5\u6536\u8868\u5355\u6570\u636e\u5e76\u5c06\u5176\u4fdd\u5b58\u5230\u6570\u636e\u5e93\u4e2d\u6216\u6267\u884c\u5176\u4ed6\u64cd\u4f5c\u3002\u901a\u8fc7\u4f7f\u7528Request\u5bf9\u8c61\u548c\u8def\u7531\u5b9a\u4e49\uff0c\u5728\u63a7\u5236\u5668\u4e2d\u53ef\u4ee5\u83b7\u53d6\u8868\u5355\u6570\u636e\uff0c\u5e76\u8fdb\u884c\u5904\u7406\u3002\u5728\u89c6\u56fe\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528\u95ea\u5b58\u548c$errors\u53d8\u91cf\u6765\u663e\u793a\u53cd\u9988\u4fe1\u606f\u3002\u901a\u8fc7\u4f7f\u7528\u8fd9\u4e9b\u6280\u672f\uff0c\u53ef\u4ee5\u521b\u5efa\u529f\u80fd\u5f3a\u5927\u7684\u8868\u5355\uff0c\u5e76\u4e3a\u7528\u6237\u63d0\u4f9b\u826f\u597d\u7684\u7528\u6237\u4f53\u9a8c\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91ca\u6570\u636e\u9a8c\u8bc1\u4e0e\u9519\u8bef\u5904\u7406<\/p>\n\n\n\n<p>\u5728Web\u5e94\u7528\u7a0b\u5e8f\u4e2d\uff0c\u6570\u636e\u9a8c\u8bc1\u662f\u975e\u5e38\u91cd\u8981\u7684\uff0c\u53ef\u4ee5\u786e\u4fdd\u8f93\u5165\u6570\u636e\u7684\u5b8c\u6574\u6027\u548c\u6b63\u786e\u6027\u3002Laravel\u63d0\u4f9b\u4e86\u8bb8\u591a\u529f\u80fd\u5f3a\u5927\u7684\u9a8c\u8bc1\u5de5\u5177\uff0c\u53ef\u4ee5\u8f7b\u677e\u5730\u5bf9\u8868\u5355\u6570\u636e\u8fdb\u884c\u9a8c\u8bc1\u3002\u5728\u672c\u8282\u4e2d\uff0c\u5c06\u4ecb\u7ecd\u5982\u4f55\u5728Laravel\u4e2d\u8fdb\u884c\u6570\u636e\u9a8c\u8bc1\u548c\u9519\u8bef\u5904\u7406\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u5b9a\u4e49\u9a8c\u8bc1\u89c4\u5219<\/li>\n<\/ol>\n\n\n\n<p>\u5728\u63a7\u5236\u5668\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528validate\u65b9\u6cd5\u5bf9\u8868\u5355\u6570\u636e\u8fdb\u884c\u9a8c\u8bc1\u3002validate\u65b9\u6cd5\u9700\u8981\u4e00\u4e2a\u9a8c\u8bc1\u89c4\u5219\u6570\u7ec4\u4f5c\u4e3a\u53c2\u6570\uff0c\u8be5\u6570\u7ec4\u6307\u5b9a\u6bcf\u4e2a\u8868\u5355\u5b57\u6bb5\u7684\u9a8c\u8bc1\u89c4\u5219\u3002\u4f8b\u5982\uff0c\u5982\u679c\u8981\u9a8c\u8bc1name\u5b57\u6bb5\u5fc5\u586b\u4e14\u6700\u591a\u4e3a255\u4e2a\u5b57\u7b26\uff0c\u5219\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>use Illuminate\\Http\\Request;\n\nclass FormController extends Controller\n{\n    public function store(Request $request)\n    {\n        $rules = [\n            'name' =&gt; 'required|max:255',\n            \/\/ \u5176\u4ed6\u9a8c\u8bc1\u89c4\u5219\n        ];\n\n        $validatedData = $request-&gt;validate($rules);\n\n        \/\/ \u5904\u7406\u9a8c\u8bc1\u540e\u7684\u6570\u636e\n\n        return redirect('\/form')-&gt;with('success', 'Form submitted successfully.');\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u4ee3\u7801\u4e2d\uff0c\u5b9a\u4e49\u4e86\u4e00\u4e2a\u9a8c\u8bc1\u89c4\u5219\u6570\u7ec4\uff0c\u5176\u4e2dname\u5b57\u6bb5\u5fc5\u586b\u4e14\u6700\u591a\u4e3a255\u4e2a\u5b57\u7b26\u3002\u4f7f\u7528$request-&gt;validate\u65b9\u6cd5\u53ef\u4ee5\u5bf9\u8868\u5355\u6570\u636e\u8fdb\u884c\u9a8c\u8bc1\uff0c\u5982\u679c\u9a8c\u8bc1\u5931\u8d25\uff0c\u5219\u4f1a\u5c06\u7528\u6237\u91cd\u5b9a\u5411\u56de\u8868\u5355\u9875\u9762\uff0c\u5e76\u663e\u793a\u9519\u8bef\u6d88\u606f\u3002\u5982\u679c\u9a8c\u8bc1\u6210\u529f\uff0c\u5219\u5c06\u9a8c\u8bc1\u540e\u7684\u6570\u636e\u4fdd\u5b58\u5230$validatedData\u53d8\u91cf\u4e2d\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u663e\u793a\u9519\u8bef\u6d88\u606f<\/li>\n<\/ol>\n\n\n\n<p>\u5728\u89c6\u56fe\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528$errors\u53d8\u91cf\u663e\u793a\u9a8c\u8bc1\u9519\u8bef\u6d88\u606f\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>&lt;form method=\"POST\" action=\"\/form\"&gt;\n    @csrf\n\n    &lt;label for=\"name\"&gt;Name&lt;\/label&gt;\n    &lt;input type=\"text\" id=\"name\" name=\"name\"&gt;\n\n    @error('name')\n        &lt;div class=\"alert alert-danger\"&gt;{{ $message }}&lt;\/div&gt;\n    @enderror\n\n    &lt;button type=\"submit\"&gt;Submit&lt;\/button&gt;\n&lt;\/form&gt;\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u4ee3\u7801\u4e2d\uff0c\u4f7f\u7528@error\u6307\u4ee4\u6765\u68c0\u67e5\u662f\u5426\u6709\u5173\u4e8ename\u5b57\u6bb5\u7684\u9519\u8bef\u6d88\u606f\u3002\u5982\u679c\u5b58\u5728\u9519\u8bef\u6d88\u606f\uff0c\u5219\u4f7f\u7528alert-danger\u7c7b\u663e\u793a\u6d88\u606f\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u81ea\u5b9a\u4e49\u9519\u8bef\u6d88\u606f<\/li>\n<\/ol>\n\n\n\n<p>\u5982\u679c\u9700\u8981\u81ea\u5b9a\u4e49\u9519\u8bef\u6d88\u606f\uff0c\u53ef\u4ee5\u5728\u9a8c\u8bc1\u89c4\u5219\u4e2d\u4f7f\u7528messages\u65b9\u6cd5\u3002\u4f8b\u5982\uff0c\u5b9a\u4e49\u4e00\u4e2a\u81ea\u5b9a\u4e49\u9519\u8bef\u6d88\u606f\u6765\u9a8c\u8bc1name\u5b57\u6bb5\u7684\u6700\u5c0f\u957f\u5ea6\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>$rules = [\n    'name' =&gt; 'required|min:5',\n];\n\n$messages = [\n    'name.min' =&gt; 'Name must be at least 5 characters.',\n];\n\n$request-&gt;validate($rules, $messages);\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u4f8b\u5b50\u4e2d\uff0c\u4f7f\u7528messages\u65b9\u6cd5\u5b9a\u4e49\u4e86\u4e00\u4e2a\u81ea\u5b9a\u4e49\u9519\u8bef\u6d88\u606f\u3002\u5728\u9a8c\u8bc1\u89c4\u5219\u4e2d\uff0c\u4f7f\u7528\u70b9\u53f7\u5206\u9694\u5b57\u6bb5\u540d\u548c\u9a8c\u8bc1\u89c4\u5219\u540d\u79f0\uff0c\u4ee5\u4fbf\u4e3a\u7279\u5b9a\u7684\u9a8c\u8bc1\u89c4\u5219\u5b9a\u4e49\u81ea\u5b9a\u4e49\u9519\u8bef\u6d88\u606f\u3002<\/p>\n\n\n\n<p>\u603b\u4e4b\uff0c\u4f7f\u7528Laravel\u53ef\u4ee5\u8f7b\u677e\u5730\u5bf9\u8868\u5355\u6570\u636e\u8fdb\u884c\u9a8c\u8bc1\u548c\u9519\u8bef\u5904\u7406\u3002\u4f7f\u7528validate\u65b9\u6cd5\u53ef\u4ee5\u6307\u5b9a\u9a8c\u8bc1\u89c4\u5219\u6570\u7ec4\uff0c\u5e76\u5728\u63a7\u5236\u5668\u4e2d\u8fdb\u884c\u6570\u636e\u9a8c\u8bc1\u3002\u5728\u89c6\u56fe\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528$errors\u53d8\u91cf\u663e\u793a\u9a8c\u8bc1\u9519\u8bef\u6d88\u606f\uff0c\u5e76\u4f7f\u7528@error\u6307\u4ee4\u68c0\u67e5\u7279\u5b9a\u5b57\u6bb5\u7684\u9519\u8bef\u6d88\u606f\u3002\u5982\u679c\u9700\u8981\u81ea\u5b9a\u4e49\u9519\u8bef\u6d88\u606f\uff0c\u5219\u53ef\u4ee5\u5728\u9a8c\u8bc1\u89c4\u5219\u4e2d\u4f7f\u7528messages\u65b9\u6cd5\u3002\u901a\u8fc7\u4f7f\u7528\u8fd9\u4e9b\u6280\u672f\uff0c\u53ef\u4ee5\u521b\u5efa\u9ad8\u5ea6\u53ef\u9760\u7684Web\u5e94\u7528\u7a0b\u5e8f\uff0c\u5e76\u786e\u4fdd\u8f93\u5165\u6570\u636e\u7684\u5b8c\u6574\u6027\u548c\u6b63\u786e\u6027\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91caLaravel\u5185\u7f6e\u8ba4\u8bc1\u7cfb\u7edf<\/p>\n\n\n\n<p>Laravel\u63d0\u4f9b\u4e86\u4e00\u4e2a\u5185\u7f6e\u7684\u8ba4\u8bc1\u7cfb\u7edf\uff0c\u53ef\u4ee5\u8f7b\u677e\u5730\u5b9e\u73b0\u7528\u6237\u8eab\u4efd\u9a8c\u8bc1\u3001\u7528\u6237\u6ce8\u518c\u548c\u91cd\u7f6e\u5bc6\u7801\u7b49\u529f\u80fd\u3002\u5728\u672c\u8282\u4e2d\uff0c\u5c06\u4ecb\u7ecdLaravel\u5185\u7f6e\u8ba4\u8bc1\u7cfb\u7edf\u7684\u4e3b\u8981\u529f\u80fd\u548c\u5982\u4f55\u4f7f\u7528\u5b83\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u8ba4\u8bc1\u63a7\u5236\u5668<\/li>\n<\/ol>\n\n\n\n<p>Laravel\u5185\u7f6e\u8ba4\u8bc1\u7cfb\u7edf\u63d0\u4f9b\u4e86\u4e00\u4e2aAuth\u63a7\u5236\u5668\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u5904\u7406\u8ba4\u8bc1\u76f8\u5173\u64cd\u4f5c\u7684\u65b9\u6cd5\u3002\u53ef\u4ee5\u4f7f\u7528php artisan make:auth\u547d\u4ee4\u751f\u6210\u4e00\u4e2a\u9ed8\u8ba4\u7684\u8ba4\u8bc1\u63a7\u5236\u5668\u548c\u89c6\u56fe\uff0c\u8fd9\u5c06\u751f\u6210\u9ed8\u8ba4\u7684\u767b\u5f55\u3001\u6ce8\u518c\u548c\u5bc6\u7801\u91cd\u7f6e\u529f\u80fd\u3002\u5982\u679c\u9700\u8981\u66f4\u6539\u751f\u6210\u7684\u89c6\u56fe\uff0c\u53ef\u4ee5\u7f16\u8f91resources\/views\/auth\u6587\u4ef6\u5939\u4e2d\u7684\u6587\u4ef6\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u8def\u7531<\/li>\n<\/ol>\n\n\n\n<p>\u5728routes\/web.php\u6587\u4ef6\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528Auth::routes()\u65b9\u6cd5\u6765\u5b9a\u4e49\u4e00\u7ec4\u8ba4\u8bc1\u76f8\u5173\u7684\u8def\u7531\u3002\u4f8b\u5982\uff0c\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u5b9a\u4e49\u4e86\u9ed8\u8ba4\u7684\u767b\u5f55\u3001\u6ce8\u518c\u548c\u5bc6\u7801\u91cd\u7f6e\u8def\u7531\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>Auth::routes();\n<\/code><\/pre>\n\n\n\n<p>\u4e5f\u53ef\u4ee5\u4f7f\u7528Route::auth()\u65b9\u6cd5\u6765\u5b9a\u4e49\u76f8\u540c\u7684\u8def\u7531\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>Route::auth();\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4f7f\u7528Auth::routes()\u65b9\u6cd5\u65f6\uff0c\u5c06\u81ea\u52a8\u5b9a\u4e49\u4ee5\u4e0b\u8def\u7531\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Method<\/th><th>URI<\/th><th>Action<\/th><\/tr><\/thead><tbody><tr><td>GET<\/td><td>\/login<\/td><td>Illuminate\\Routing\\Controller@login<\/td><\/tr><tr><td>POST<\/td><td>\/login<\/td><td>Illuminate\\Routing\\Controller@login<\/td><\/tr><tr><td>POST<\/td><td>\/logout<\/td><td>Illuminate\\Routing\\Controller@logout<\/td><\/tr><tr><td>POST<\/td><td>\/password\/email<\/td><td>Illuminate\\Routing\\Controller@sendResetLinkEmail<\/td><\/tr><tr><td>GET<\/td><td>\/password\/reset<\/td><td>Illuminate\\Routing\\Controller@showResetForm<\/td><\/tr><tr><td>POST<\/td><td>\/password\/reset<\/td><td>Illuminate\\Routing\\Controller@reset<\/td><\/tr><tr><td>GET<\/td><td>\/register<\/td><td>Illuminate\\Routing\\Controller@showRegistrationForm<\/td><\/tr><tr><td>POST<\/td><td>\/register<\/td><td>Illuminate\\Routing\\Controller@register<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u4e2d\u95f4\u4ef6<\/li>\n<\/ol>\n\n\n\n<p>Laravel\u5185\u7f6e\u8ba4\u8bc1\u7cfb\u7edf\u8fd8\u63d0\u4f9b\u4e86\u4e00\u4e9b\u4e2d\u95f4\u4ef6\uff0c\u7528\u4e8e\u9650\u5236\u5bf9\u53d7\u4fdd\u62a4\u8def\u7531\u7684\u8bbf\u95ee\u3002\u53ef\u4ee5\u4f7f\u7528auth\u4e2d\u95f4\u4ef6\u6765\u4fdd\u62a4\u8def\u7531\uff0c\u4ee5\u786e\u4fdd\u7528\u6237\u5fc5\u987b\u5148\u767b\u5f55\u624d\u80fd\u8bbf\u95ee\u3002\u4f8b\u5982\uff0c\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u6765\u9650\u5236\u5bf9\/profile\u8def\u7531\u7684\u8bbf\u95ee\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>Route::get('\/profile', 'ProfileController@index')-&gt;middleware('auth');\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u4f8b\u5b50\u4e2d\uff0c\u4f7f\u7528middleware(&#8216;auth&#8217;)\u65b9\u6cd5\u6765\u5c06auth\u4e2d\u95f4\u4ef6\u5e94\u7528\u4e8e\u8def\u7531\u3002\u8fd9\u5c06\u786e\u4fdd\u53ea\u6709\u5df2\u7ecf\u767b\u5f55\u7684\u7528\u6237\u624d\u80fd\u8bbf\u95ee\u8be5\u8def\u7531\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u8ba4\u8bc1\u670d\u52a1<\/li>\n<\/ol>\n\n\n\n<p>Laravel\u5185\u7f6e\u8ba4\u8bc1\u7cfb\u7edf\u8fd8\u63d0\u4f9b\u4e86\u4e00\u4e2a\u8ba4\u8bc1\u670d\u52a1\uff0c\u7528\u4e8e\u5904\u7406\u7528\u6237\u8eab\u4efd\u9a8c\u8bc1\u3002\u53ef\u4ee5\u4f7f\u7528Auth\u95e8\u9762\u6765\u8bbf\u95ee\u8be5\u670d\u52a1\u3002\u4f8b\u5982\uff0c\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u6765\u68c0\u67e5\u5f53\u524d\u7528\u6237\u662f\u5426\u5df2\u7ecf\u767b\u5f55\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>use Illuminate\\Support\\Facades\\Auth;\n\nif (Auth::check()) {\n    \/\/ \u7528\u6237\u5df2\u7ecf\u767b\u5f55\n} else {\n    \/\/ \u7528\u6237\u672a\u767b\u5f55\n}\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u4f8b\u5b50\u4e2d\uff0c\u4f7f\u7528Auth::check()\u65b9\u6cd5\u6765\u68c0\u67e5\u5f53\u524d\u7528\u6237\u662f\u5426\u5df2\u7ecf\u767b\u5f55\u3002\u5982\u679c\u7528\u6237\u5df2\u7ecf\u767b\u5f55\uff0c\u5219\u8fd4\u56detrue\uff0c\u5426\u5219\u8fd4\u56defalse\u3002<\/p>\n\n\n\n<p>\u603b\u4e4b\uff0cLaravel\u63d0\u4f9b\u4e86\u4e00\u4e2a\u5f3a\u5927\u7684\u5185\u7f6e\u8ba4\u8bc1\u7cfb\u7edf\uff0c\u53ef\u7528\u4e8e\u5904\u7406\u7528\u6237\u8eab\u4efd\u9a8c\u8bc1\u3001\u7528\u6237\u6ce8\u518c\u548c\u5bc6\u7801\u91cd\u7f6e\u7b49\u529f\u80fd\u3002\u4f7f\u7528Auth\u63a7\u5236\u5668\u548c\u8def\u7531\u53ef\u4ee5\u8f7b\u677e\u5730\u751f\u6210\u9ed8\u8ba4\u7684\u8ba4\u8bc1\u89c6\u56fe\u548c\u8def\u7531\u3002\u4f7f\u7528auth\u4e2d\u95f4\u4ef6\u53ef\u4ee5\u9650\u5236\u5bf9\u53d7\u4fdd\u62a4\u8def\u7531\u7684\u8bbf<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u7ee7\u7eed<\/p>\n\n\n\n<p>\u95ee\uff0c\u786e\u4fdd\u53ea\u6709\u5df2\u7ecf\u767b\u5f55\u7684\u7528\u6237\u624d\u80fd\u8bbf\u95ee\u3002\u4f7f\u7528Auth\u95e8\u9762\u53ef\u4ee5\u8bbf\u95ee\u8ba4\u8bc1\u670d\u52a1\uff0c\u5e76\u68c0\u67e5\u5f53\u524d\u7528\u6237\u662f\u5426\u5df2\u7ecf\u767b\u5f55\u3002Laravel\u5185\u7f6e\u8ba4\u8bc1\u7cfb\u7edf\u7684\u4f7f\u7528\u975e\u5e38\u7b80\u5355\uff0c\u53ef\u4ee5\u5e2e\u52a9\u5f00\u53d1\u4eba\u5458\u5feb\u901f\u6784\u5efa\u5b89\u5168\u7684Web\u5e94\u7528\u7a0b\u5e8f\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91ca\u7528\u6237\u6ce8\u518c\u4e0e\u767b\u5f55<\/p>\n\n\n\n<p>Laravel\u5185\u7f6e\u8ba4\u8bc1\u7cfb\u7edf\u63d0\u4f9b\u4e86\u7528\u6237\u6ce8\u518c\u548c\u767b\u5f55\u529f\u80fd\uff0c\u53ef\u4ee5\u8f7b\u677e\u5730\u4e3aWeb\u5e94\u7528\u7a0b\u5e8f\u6dfb\u52a0\u8fd9\u4e9b\u529f\u80fd\u3002\u5728\u672c\u8282\u4e2d\uff0c\u5c06\u4ecb\u7ecd\u5982\u4f55\u5728Laravel\u4e2d\u5b9e\u73b0\u7528\u6237\u6ce8\u518c\u548c\u767b\u5f55\u529f\u80fd\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u7528\u6237\u6ce8\u518c<\/li>\n<\/ol>\n\n\n\n<p>\u9996\u5148\uff0c\u5728Auth\u63a7\u5236\u5668\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528register\u65b9\u6cd5\u6765\u663e\u793a\u7528\u6237\u6ce8\u518c\u8868\u5355\u89c6\u56fe\u3002\u4f8b\u5982\uff0c\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u6765\u663e\u793a\u6ce8\u518c\u8868\u5355\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>use Illuminate\\Http\\Request;\n\nclass AuthController extends Controller\n{\n    public function showRegistrationForm()\n    {\n        return view('auth.register');\n    }\n\n    public function register(Request $request)\n    {\n        \/\/ \u5904\u7406\u7528\u6237\u6ce8\u518c\u903b\u8f91\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u4ee3\u7801\u4e2d\uff0c\u4f7f\u7528showRegistrationForm\u65b9\u6cd5\u6765\u663e\u793a\u6ce8\u518c\u8868\u5355\u89c6\u56fe\u3002\u5728register\u65b9\u6cd5\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528$request\u5bf9\u8c61\u6765\u83b7\u53d6\u8868\u5355\u6570\u636e\uff0c\u5e76\u8fdb\u884c\u7528\u6237\u6ce8\u518c\u903b\u8f91\u7684\u5904\u7406\u3002<\/p>\n\n\n\n<p>\u5728\u6ce8\u518c\u8868\u5355\u89c6\u56fe\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u6765\u521b\u5efa\u6ce8\u518c\u8868\u5355\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>&lt;form method=\"POST\" action=\"{{ route('register') }}\"&gt;\n    @csrf\n\n    &lt;label for=\"name\"&gt;Name&lt;\/label&gt;\n    &lt;input type=\"text\" id=\"name\" name=\"name\"&gt;\n\n    &lt;label for=\"email\"&gt;Email&lt;\/label&gt;\n    &lt;input type=\"email\" id=\"email\" name=\"email\"&gt;\n\n    &lt;label for=\"password\"&gt;Password&lt;\/label&gt;\n    &lt;input type=\"password\" id=\"password\" name=\"password\"&gt;\n\n    &lt;label for=\"password_confirmation\"&gt;Confirm Password&lt;\/label&gt;\n    &lt;input type=\"password\" id=\"password_confirmation\" name=\"password_confirmation\"&gt;\n\n    &lt;button type=\"submit\"&gt;Register&lt;\/button&gt;\n&lt;\/form&gt;\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u4ee3\u7801\u4e2d\uff0c\u4f7f\u7528@csrf\u6307\u4ee4\u6765\u6dfb\u52a0CSRF\u4fdd\u62a4\uff0c\u9632\u6b62\u8de8\u7ad9\u8bf7\u6c42\u4f2a\u9020\u653b\u51fb\u3002\u4f7f\u7528route\u51fd\u6570\u6765\u6307\u5b9a\u8868\u5355\u7684\u63d0\u4ea4\u8def\u7531\u3002\u5728\u8868\u5355\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528name\u5c5e\u6027\u6765\u6307\u5b9a\u8868\u5355\u5b57\u6bb5\u7684\u540d\u79f0\uff0c\u8fd9\u4e9b\u540d\u79f0\u5c06\u5728\u63a7\u5236\u5668\u4e2d\u7528\u4e8e\u83b7\u53d6\u8868\u5355\u6570\u636e\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u7528\u6237\u767b\u5f55<\/li>\n<\/ol>\n\n\n\n<p>\u5728Auth\u63a7\u5236\u5668\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528login\u65b9\u6cd5\u6765\u663e\u793a\u7528\u6237\u767b\u5f55\u8868\u5355\u89c6\u56fe\u3002\u4f8b\u5982\uff0c\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u6765\u663e\u793a\u767b\u5f55\u8868\u5355\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>use Illuminate\\Http\\Request;\n\nclass AuthController extends Controller\n{\n    public function showLoginForm()\n    {\n        return view('auth.login');\n    }\n\n    public function login(Request $request)\n    {\n        \/\/ \u5904\u7406\u7528\u6237\u767b\u5f55\u903b\u8f91\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u4ee3\u7801\u4e2d\uff0c\u4f7f\u7528showLoginForm\u65b9\u6cd5\u6765\u663e\u793a\u767b\u5f55\u8868\u5355\u89c6\u56fe\u3002\u5728login\u65b9\u6cd5\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528$request\u5bf9\u8c61\u6765\u83b7\u53d6\u8868\u5355\u6570\u636e\uff0c\u5e76\u8fdb\u884c\u7528\u6237\u767b\u5f55\u903b\u8f91\u7684\u5904\u7406\u3002<\/p>\n\n\n\n<p>\u5728\u767b\u5f55\u8868\u5355\u89c6\u56fe\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u6765\u521b\u5efa\u767b\u5f55\u8868\u5355\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>&lt;form method=\"POST\" action=\"{{ route('login') }}\"&gt;\n    @csrf\n\n    &lt;label for=\"email\"&gt;Email&lt;\/label&gt;\n    &lt;input type=\"email\" id=\"email\" name=\"email\"&gt;\n\n    &lt;label for=\"password\"&gt;Password&lt;\/label&gt;\n    &lt;input type=\"password\" id=\"password\" name=\"password\"&gt;\n\n    &lt;button type=\"submit\"&gt;Login&lt;\/button&gt;\n&lt;\/form&gt;\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u4ee3\u7801\u4e2d\uff0c\u540c\u6837\u4f7f\u7528@csrf\u6307\u4ee4\u6765\u6dfb\u52a0CSRF\u4fdd\u62a4\uff0c\u5e76\u4f7f\u7528route\u51fd\u6570\u6765\u6307\u5b9a\u8868\u5355\u7684\u63d0\u4ea4\u8def\u7531\u3002\u5728\u8868\u5355\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528name\u5c5e\u6027\u6765\u6307\u5b9a\u8868\u5355\u5b57\u6bb5\u7684\u540d\u79f0\uff0c\u8fd9\u4e9b\u540d\u79f0\u5c06\u5728\u63a7\u5236\u5668\u4e2d\u7528\u4e8e\u83b7\u53d6\u8868\u5355\u6570\u636e\u3002<\/p>\n\n\n\n<p>\u603b\u4e4b\uff0c\u5728Laravel\u4e2d\u5b9e\u73b0\u7528\u6237\u6ce8\u518c\u548c<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u7ee7\u7eed<\/p>\n\n\n\n<p>\u767b\u5f55\u529f\u80fd\u975e\u5e38\u7b80\u5355\uff0c\u53ea\u9700\u8981\u4f7f\u7528Auth\u63a7\u5236\u5668\u7684register\u548clogin\u65b9\u6cd5\u6765\u5904\u7406\u8868\u5355\u6570\u636e\u5373\u53ef\u3002\u4f7f\u7528\u76f8\u5e94\u7684\u89c6\u56fe\u6765\u521b\u5efa\u6ce8\u518c\u548c\u767b\u5f55\u8868\u5355\uff0c\u4f7f\u7528route\u51fd\u6570\u6765\u6307\u5b9a\u8868\u5355\u7684\u63d0\u4ea4\u8def\u7531\u3002\u5728\u63a7\u5236\u5668\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528$request\u5bf9\u8c61\u6765\u83b7\u53d6\u8868\u5355\u6570\u636e\uff0c\u5e76\u8fdb\u884c\u7528\u6237\u6ce8\u518c\u548c\u767b\u5f55\u903b\u8f91\u7684\u5904\u7406\u3002<\/p>\n\n\n\n<p>\u6b64\u5916\uff0cLaravel\u5185\u7f6e\u8ba4\u8bc1\u7cfb\u7edf\u8fd8\u63d0\u4f9b\u4e86\u8bb8\u591a\u5176\u4ed6\u529f\u80fd\uff0c\u4f8b\u5982\u5bc6\u7801\u91cd\u7f6e\u3001\u8bb0\u4f4f\u6211\u7b49\u529f\u80fd\uff0c\u53ef\u4ee5\u8ba9\u7528\u6237\u66f4\u65b9\u4fbf\u5730\u4f7f\u7528Web\u5e94\u7528\u7a0b\u5e8f\u3002\u8fd9\u4e9b\u529f\u80fd\u53ef\u4ee5\u901a\u8fc7Auth\u63a7\u5236\u5668\u548c\u76f8\u5e94\u7684\u89c6\u56fe\u6765\u5b9e\u73b0\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528Laravel\u63d0\u4f9b\u7684\u8ba4\u8bc1\u8def\u7531\u548c\u4e2d\u95f4\u4ef6\u6765\u5b9e\u73b0\u3002\u4f7f\u7528Laravel\u5185\u7f6e\u8ba4\u8bc1\u7cfb\u7edf\u53ef\u4ee5\u5feb\u901f\u6784\u5efa\u5b89\u5168\u7684Web\u5e94\u7528\u7a0b\u5e8f\uff0c\u63d0\u9ad8\u5f00\u53d1\u6548\u7387\u548c\u7528\u6237\u4f53\u9a8c\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91ca\u7528\u6237\u6388\u6743\u4e0e\u7b56\u7565<\/p>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u7528\u6237\u6388\u6743\u6307\u7684\u662f\u4e3a\u5df2\u7ecf\u7ecf\u8fc7\u8eab\u4efd\u9a8c\u8bc1\u7684\u7528\u6237\u6388\u4e88\u8bbf\u95ee\u8d44\u6e90\u7684\u6743\u9650\u3002\u6388\u6743\u53ef\u4ee5\u662f\u57fa\u4e8e\u89d2\u8272\u6216\u8005\u5176\u4ed6\u6761\u4ef6\u8fdb\u884c\u7684\uff0cLaravel\u63d0\u4f9b\u4e86\u5f3a\u5927\u7684\u6388\u6743\u7cfb\u7edf\u6765\u5e2e\u52a9\u5f00\u53d1\u4eba\u5458\u8f7b\u677e\u5b9e\u73b0\u8fd9\u4e9b\u529f\u80fd\u3002<\/p>\n\n\n\n<p>Laravel\u6388\u6743\u7cfb\u7edf\u7684\u6838\u5fc3\u6982\u5ff5\u662f\u7b56\u7565(Policy)\u3002\u7b56\u7565\u662f\u4e00\u79cd\u5b9a\u4e49\u5728\u6307\u5b9a\u6a21\u578b\u4e0a\u7684PHP\u7c7b\uff0c\u7528\u4e8e\u5b9a\u4e49\u6388\u6743\u89c4\u5219\u3002\u901a\u8fc7\u5b9a\u4e49\u7b56\u7565\uff0c\u53ef\u4ee5\u5c06\u6388\u6743\u89c4\u5219\u4e0e\u6a21\u578b\u5206\u79bb\uff0c\u4ece\u800c\u63d0\u9ad8\u4ee3\u7801\u7684\u53ef\u7ef4\u62a4\u6027\u548c\u53ef\u6269\u5c55\u6027\u3002<\/p>\n\n\n\n<p>\u4ee5\u4e0b\u662f\u5728Laravel\u4e2d\u4f7f\u7528\u7b56\u7565\u8fdb\u884c\u6388\u6743\u7684\u6b65\u9aa4\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u521b\u5efa\u7b56\u7565<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528Artisan\u547d\u4ee4\u5feb\u901f\u751f\u6210\u7b56\u7565\u6587\u4ef6\u3002\u4f8b\u5982\uff0c\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u751f\u6210\u4e00\u4e2aPost\u6a21\u578b\u7684\u7b56\u7565\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">goCopy code<code>php artisan make:policy PostPolicy --model=Post\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u9762\u7684\u547d\u4ee4\u5c06\u5728app\/Policies\u76ee\u5f55\u4e0b\u521b\u5efa\u4e00\u4e2aPostPolicy.php\u6587\u4ef6\u3002\u5728\u8be5\u6587\u4ef6\u4e2d\uff0c\u53ef\u4ee5\u5b9a\u4e49\u6388\u6743\u89c4\u5219\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>namespace App\\Policies;\n\nuse App\\Models\\User;\nuse App\\Models\\Post;\n\nclass PostPolicy\n{\n    public function view(User $user, Post $post)\n    {\n        return $user-&gt;id === $post-&gt;user_id;\n    }\n\n    public function update(User $user, Post $post)\n    {\n        return $user-&gt;id === $post-&gt;user_id;\n    }\n\n    public function delete(User $user, Post $post)\n    {\n        return $user-&gt;id === $post-&gt;user_id;\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u9762\u7684\u7b56\u7565\u5b9a\u4e49\u4e86\u4e09\u4e2a\u65b9\u6cd5\uff0c\u5206\u522b\u7528\u4e8e\u6388\u6743\u7528\u6237\u67e5\u770b\u3001\u66f4\u65b0\u548c\u5220\u9664Post\u6a21\u578b\u3002\u5728\u8fd9\u4e9b\u65b9\u6cd5\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528$user\u5bf9\u8c61\u548c$post\u5bf9\u8c61\u6765\u8bbf\u95ee\u5f53\u524d\u7528\u6237\u548c\u6a21\u578b\u7684\u5c5e\u6027\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u6ce8\u518c\u7b56\u7565<\/li>\n<\/ol>\n\n\n\n<p>\u8981\u4f7f\u7528\u7b56\u7565\uff0c\u9700\u8981\u5728AuthServiceProvider\u4e2d\u6ce8\u518c\u7b56\u7565\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u5728AuthServiceProvider\u4e2d\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u6765\u6ce8\u518cPost\u6a21\u578b\u7684\u7b56\u7565\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>namespace App\\Providers;\n\nuse Illuminate\\Foundation\\Support\\Providers\\AuthServiceProvider as ServiceProvider;\nuse Illuminate\\Support\\Facades\\Gate;\nuse App\\Models\\Post;\nuse App\\Policies\\PostPolicy;\n\nclass AuthServiceProvider extends ServiceProvider\n{\n    protected $policies = [\n        Post::class =&gt; PostPolicy::class,\n    ];\n\n    public function boot()\n    {\n        $this-&gt;registerPolicies();\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u4ee3\u7801\u4e2d\uff0c\u5c06Post\u6a21\u578b\u548cPostPolicy\u7b56\u7565\u5173\u8054\u8d77\u6765\uff0c\u5e76\u5728boot\u65b9\u6cd5\u4e2d\u6ce8\u518c\u4e86\u7b56\u7565\u3002\u8fd9\u6837\uff0c\u5c31\u53ef\u4ee5\u5728\u6388\u6743\u65f6\u4f7f\u7528\u8be5\u7b56\u7565\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u4f7f\u7528\u7b56\u7565<\/li>\n<\/ol>\n\n\n\n<p>\u5728\u6388\u6743\u65f6\uff0c\u53ef\u4ee5\u4f7f\u7528Gate\u95e8\u9762\u6765\u4f7f\u7528\u7b56\u7565\u3002\u4f8b\u5982\uff0c\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u6765\u68c0\u67e5\u7528\u6237\u662f\u5426\u6709\u6743\u9650\u67e5\u770b\u6307\u5b9a\u7684Post\u6a21\u578b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>use Illuminate\\Support\\Facades\\Gate;\nuse App\\Models\\Post;\n\n$post = Post::find(1);\n\nif (Gate::allows('view', $post)) {\n    \/\/ \u7528\u6237\u6709\u6743\u9650\u67e5\u770b\u8be5Post\u6a21\u578b\n} else {\n    \/\/ \u7528\u6237\u6ca1\u6709\u6743\u9650\u67e5\u770b\u8be5Post\u6a21\u578b\n}\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u4ee3\u7801\u4e2d\uff0c\u4f7f\u7528Gate::allows(&#8216;view&#8217;, $post)\u65b9\u6cd5\u6765\u68c0\u67e5\u7528\u6237\u662f\u5426\u6709\u6743\u9650<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u7ee7\u7eed<\/p>\n\n\n\n<p>\u67e5\u770b\u6307\u5b9a\u7684Post\u6a21\u578b\u3002\u8be5\u65b9\u6cd5\u7684\u7b2c\u4e00\u4e2a\u53c2\u6570\u662f\u8981\u68c0\u67e5\u7684\u7b56\u7565\u540d\u79f0\uff0c\u7b2c\u4e8c\u4e2a\u53c2\u6570\u662f\u8981\u68c0\u67e5\u7684\u6a21\u578b\u5b9e\u4f8b\u3002<\/p>\n\n\n\n<p>\u9664\u4e86Gate::allows\u65b9\u6cd5\u5916\uff0c\u8fd8\u6709Gate::denies\u65b9\u6cd5\uff0c\u7528\u4e8e\u68c0\u67e5\u7528\u6237\u662f\u5426\u6ca1\u6709\u6743\u9650\u8bbf\u95ee\u8d44\u6e90\u3002<\/p>\n\n\n\n<p>\u9664\u4e86\u5728\u63a7\u5236\u5668\u4e2d\u8fdb\u884c\u6388\u6743\u68c0\u67e5\u5916\uff0c\u8fd8\u53ef\u4ee5\u5728\u89c6\u56fe\u4e2d\u4f7f\u7528@can\u548c@cannot\u6307\u4ee4\u8fdb\u884c\u6388\u6743\u68c0\u67e5\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u5728\u89c6\u56fe\u4e2d\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u6765\u68c0\u67e5\u7528\u6237\u662f\u5426\u6709\u6743\u9650\u66f4\u65b0\u6307\u5b9a\u7684Post\u6a21\u578b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>@can('update', $post)\n    &lt;a href=\"{{ route('posts.edit', $post) }}\"&gt;Edit&lt;\/a&gt;\n@endcan\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u4ee3\u7801\u4e2d\uff0c\u4f7f\u7528@can\u6307\u4ee4\u6765\u68c0\u67e5\u7528\u6237\u662f\u5426\u6709\u6743\u9650\u66f4\u65b0\u6307\u5b9a\u7684Post\u6a21\u578b\u3002\u5982\u679c\u7528\u6237\u6709\u6743\u9650\uff0c\u5219\u663e\u793aEdit\u94fe\u63a5\u3002<\/p>\n\n\n\n<p>\u901a\u8fc7\u4f7f\u7528Laravel\u7684\u6388\u6743\u7cfb\u7edf\uff0c\u53ef\u4ee5\u8f7b\u677e\u5b9e\u73b0\u5bf9Web\u5e94\u7528\u7a0b\u5e8f\u8d44\u6e90\u7684\u8bbf\u95ee\u63a7\u5236\u3002\u4f7f\u7528\u7b56\u7565\u53ef\u4ee5\u5c06\u6388\u6743\u89c4\u5219\u4e0e\u6a21\u578b\u5206\u79bb\uff0c\u63d0\u9ad8\u4ee3\u7801\u7684\u53ef\u7ef4\u62a4\u6027\u548c\u53ef\u6269\u5c55\u6027\u3002\u540c\u65f6\uff0cLaravel\u8fd8\u63d0\u4f9b\u4e86\u65b9\u4fbf\u7684Gate\u95e8\u9762\u548c\u6307\u4ee4\u6765\u5e2e\u52a9\u5f00\u53d1\u4eba\u5458\u8f7b\u677e\u5b9e\u73b0\u6388\u6743\u68c0\u67e5\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91caLaravel\u4efb\u52a1\u8c03\u5ea6\u6982\u8ff0<\/p>\n\n\n\n<p>Laravel\u4efb\u52a1\u8c03\u5ea6\u662f\u4e00\u79cd\u7528\u4e8e\u81ea\u52a8\u5316\u6267\u884c\u4efb\u52a1\u7684\u673a\u5236\uff0c\u5b83\u53ef\u4ee5\u8ba9\u5f00\u53d1\u4eba\u5458\u8f7b\u677e\u5730\u6267\u884c\u91cd\u590d\u6027\u7684\u4efb\u52a1\uff0c\u4f8b\u5982\u5b9a\u671f\u5907\u4efd\u6570\u636e\u5e93\u3001\u751f\u6210\u62a5\u544a\u7b49\u3002Laravel\u4efb\u52a1\u8c03\u5ea6\u4f7f\u7528\u4e86Cron\u5b9a\u65f6\u4efb\u52a1\u7684\u6982\u5ff5\uff0c\u4f46\u662f\u4e0eCron\u4e0d\u540c\u7684\u662f\uff0cLaravel\u4efb\u52a1\u8c03\u5ea6\u53ef\u4ee5\u66f4\u7075\u6d3b\u5730\u5b9a\u4e49\u4efb\u52a1\uff0c\u5e76\u63d0\u4f9b\u4e86\u66f4\u591a\u7684\u529f\u80fd\u3002<\/p>\n\n\n\n<p>Laravel\u4efb\u52a1\u8c03\u5ea6\u7684\u6838\u5fc3\u6982\u5ff5\u662f\u8c03\u5ea6\u5668(Scheduler)\u548c\u4efb\u52a1(Task)\u3002\u8c03\u5ea6\u5668\u662f\u4e00\u79cd\u5b9a\u4e49\u5728Kernel\u4e2d\u7684PHP\u7c7b\uff0c\u7528\u4e8e\u5b9a\u4e49\u8981\u6267\u884c\u7684\u4efb\u52a1\u4ee5\u53ca\u5b83\u4eec\u7684\u6267\u884c\u8ba1\u5212\u3002\u4efb\u52a1\u662f\u4e00\u79cd\u5b9e\u73b0\u4e86ShouldQueue\u63a5\u53e3\u7684PHP\u7c7b\uff0c\u7528\u4e8e\u5b9a\u4e49\u8981\u6267\u884c\u7684\u5177\u4f53\u64cd\u4f5c\u3002<\/p>\n\n\n\n<p>\u4ee5\u4e0b\u662f\u5728Laravel\u4e2d\u4f7f\u7528\u4efb\u52a1\u8c03\u5ea6\u7684\u6b65\u9aa4\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u5b9a\u4e49\u4efb\u52a1<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528Artisan\u547d\u4ee4\u5feb\u901f\u751f\u6210\u4efb\u52a1\u6587\u4ef6\u3002\u4f8b\u5982\uff0c\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u751f\u6210\u4e00\u4e2a\u5907\u4efd\u6570\u636e\u5e93\u7684\u4efb\u52a1\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">goCopy code<code>php artisan make:job BackupDatabase\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u9762\u7684\u547d\u4ee4\u5c06\u5728app\/Jobs\u76ee\u5f55\u4e0b\u521b\u5efa\u4e00\u4e2aBackupDatabase.php\u6587\u4ef6\u3002\u5728\u8be5\u6587\u4ef6\u4e2d\uff0c\u53ef\u4ee5\u5b9a\u4e49\u5907\u4efd\u6570\u636e\u5e93\u7684\u5177\u4f53\u64cd\u4f5c\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>namespace App\\Jobs;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Foundation\\Bus\\Dispatchable;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\n\nclass BackupDatabase implements ShouldQueue\n{\n    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;\n\n    public function handle()\n    {\n        \/\/ \u5907\u4efd\u6570\u636e\u5e93\u7684\u5177\u4f53\u64cd\u4f5c\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u9762\u7684\u4efb\u52a1\u5b9e\u73b0\u4e86ShouldQueue\u63a5\u53e3\uff0c\u8868\u793a\u8be5\u4efb\u52a1\u53ef\u4ee5\u88ab\u52a0\u5165\u961f\u5217\u4e2d\u6267\u884c\u3002\u5728handle\u65b9\u6cd5\u4e2d\uff0c\u53ef\u4ee5\u5b9a\u4e49\u5907\u4efd\u6570\u636e\u5e93\u7684\u5177\u4f53\u64cd\u4f5c\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u5b9a\u4e49\u8c03\u5ea6\u5668<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528Kernel\u7c7b\u6765\u5b9a\u4e49\u8c03\u5ea6\u5668\u3002Kernel\u7c7b\u662f\u4e00\u4e2a\u4f4d\u4e8eapp\/Console\u76ee\u5f55\u4e0b\u7684PHP\u7c7b\uff0c\u5b83\u5b9a\u4e49\u4e86\u6240\u6709\u7684Laravel\u547d\u4ee4\u548c\u4efb\u52a1\u8c03\u5ea6\u5668\u3002<\/p>\n\n\n\n<p>\u5728Kernel\u7c7b\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528schedule\u65b9\u6cd5\u6765\u5b9a\u4e49\u8981\u6267\u884c\u7684\u4efb\u52a1\u4ee5\u53ca\u5b83\u4eec\u7684\u6267\u884c\u8ba1\u5212\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u6765\u5b9a\u4e49\u6bcf\u5929\u665a\u4e0a8\u70b9\u5907\u4efd\u6570\u636e\u5e93\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>namespace App\\Console;\n\nuse Illuminate\\Console\\Scheduling\\Schedule;\nuse Illuminate\\Foundation\\Console\\Kernel as ConsoleKernel;\n\nclass Kernel extends ConsoleKernel\n{\n    protected function schedule(Schedule $schedule)\n    {\n        $schedule-&gt;job(new BackupDatabase)-&gt;dailyAt('20:00');\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u4ee3\u7801\u4e2d\uff0c\u4f7f\u7528dailyAt\u65b9\u6cd5\u6765\u5b9a\u4e49\u4efb\u52a1\u7684\u6267\u884c\u8ba1\u5212\uff0c\u8868\u793a\u6bcf\u5929\u665a\u4e0a8\u70b9\u6267\u884c\u5907\u4efd\u6570\u636e\u5e93\u7684\u4efb\u52a1\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u6ce8\u518c\u8c03\u5ea6\u5668<\/li>\n<\/ol>\n\n\n\n<p>\u8981\u4f7f\u7528\u8c03\u5ea6\u5668\uff0c\u9700\u8981\u5728app\/Console\/Kernel.php\u6587\u4ef6\u4e2d\u6ce8\u518c\u8c03\u5ea6\u5668\u3002\u4f8b\u5982\uff0c\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u6765\u6ce8\u518c\u8c03\u5ea6\u5668\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>protected function schedule(Schedule $schedule)\n{\n    $schedule-&gt;job(new BackupDatabase)-&gt;dailyAt('20:00');\n}\n\nprotected function commands()\n{\n    $this-&gt;load(__DIR__.'\/Commands');\n\n    require base_path('routes\/console.php');\n}\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u4ee3\u7801\u4e2d\uff0c\u5c06\u8c03\u5ea6\u5668\u6ce8\u518c\u5728schedule\u65b9\u6cd5\u4e2d\uff0c\u5e76\u5728commands\u65b9\u6cd5\u4e2d\u6ce8\u518c\u5176\u4ed6\u547d\u4ee4\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u8fd0\u884c\u4efb\u52a1\u8c03\u5ea6\u5668<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528Art<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u7ee7\u7eed<\/p>\n\n\n\n<p>isan\u547d\u4ee4\u6765\u542f\u52a8\u4efb\u52a1\u8c03\u5ea6\u5668\u3002\u4f8b\u5982\uff0c\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u6765\u542f\u52a8\u4efb\u52a1\u8c03\u5ea6\u5668\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">arduinoCopy code<code>php artisan schedule:run\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u9762\u7684\u547d\u4ee4\u5c06\u8fd0\u884c\u4efb\u52a1\u8c03\u5ea6\u5668\uff0c\u5e76\u6839\u636e\u5b9a\u4e49\u7684\u6267\u884c\u8ba1\u5212\u6765\u6267\u884c\u4efb\u52a1\u3002<\/p>\n\n\n\n<p>\u9664\u4e86\u4e0a\u9762\u7684\u6b65\u9aa4\u5916\uff0cLaravel\u4efb\u52a1\u8c03\u5ea6\u8fd8\u63d0\u4f9b\u4e86\u8bb8\u591a\u5176\u4ed6\u529f\u80fd\uff0c\u4f8b\u5982\u4efb\u52a1\u95f4\u7684\u4f9d\u8d56\u5173\u7cfb\u3001\u4efb\u52a1\u6267\u884c\u5931\u8d25\u7684\u5904\u7406\u3001\u4efb\u52a1\u961f\u5217\u7684\u7ba1\u7406\u7b49\u3002\u901a\u8fc7\u4f7f\u7528Laravel\u4efb\u52a1\u8c03\u5ea6\uff0c\u53ef\u4ee5\u8f7b\u677e\u5730\u5b9e\u73b0\u5bf9Web\u5e94\u7528\u7a0b\u5e8f\u7684\u81ea\u52a8\u5316\u64cd\u4f5c\uff0c\u63d0\u9ad8\u5f00\u53d1\u6548\u7387\u548c\u4ee3\u7801\u53ef\u9760\u6027\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91ca\u961f\u5217\u7684\u57fa\u672c\u6982\u5ff5\u4e0e\u914d\u7f6e<\/p>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u961f\u5217\u662f\u4e00\u79cd\u5f02\u6b65\u4efb\u52a1\u5904\u7406\u673a\u5236\uff0c\u5b83\u53ef\u4ee5\u5c06\u8017\u65f6\u7684\u4efb\u52a1\u4ece\u4e3b\u7ebf\u7a0b\u4e2d\u5206\u79bb\u51fa\u6765\uff0c\u5e76\u5728\u540e\u53f0\u5f02\u6b65\u6267\u884c\uff0c\u4ece\u800c\u63d0\u9ad8Web\u5e94\u7528\u7a0b\u5e8f\u7684\u54cd\u5e94\u901f\u5ea6\u548c\u6027\u80fd\u3002Laravel\u7684\u961f\u5217\u7cfb\u7edf\u63d0\u4f9b\u4e86\u4e00\u4e2a\u7edf\u4e00\u7684API\uff0c\u53ef\u4ee5\u8f7b\u677e\u5730\u8fde\u63a5\u5404\u79cd\u961f\u5217\u670d\u52a1\uff0c\u4f8b\u5982Beanstalkd\u3001Redis\u3001Amazon SQS\u7b49\u3002<\/p>\n\n\n\n<p>Laravel\u961f\u5217\u7684\u6838\u5fc3\u6982\u5ff5\u662f\u4efb\u52a1(Task)\u548c\u961f\u5217(Queue)\u3002\u4efb\u52a1\u662f\u4e00\u79cd\u5b9e\u73b0\u4e86ShouldQueue\u63a5\u53e3\u7684PHP\u7c7b\uff0c\u7528\u4e8e\u5b9a\u4e49\u8981\u6267\u884c\u7684\u5177\u4f53\u64cd\u4f5c\u3002\u961f\u5217\u662f\u4e00\u79cd\u5904\u7406\u5f02\u6b65\u4efb\u52a1\u7684\u670d\u52a1\uff0c\u5b83\u5c06\u4efb\u52a1\u52a0\u5165\u961f\u5217\u4e2d\uff0c\u5e76\u5f02\u6b65\u6267\u884c\u8fd9\u4e9b\u4efb\u52a1\u3002<\/p>\n\n\n\n<p>\u4ee5\u4e0b\u662f\u5728Laravel\u4e2d\u4f7f\u7528\u961f\u5217\u7684\u6b65\u9aa4\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u5b9a\u4e49\u4efb\u52a1<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528Artisan\u547d\u4ee4\u5feb\u901f\u751f\u6210\u4efb\u52a1\u6587\u4ef6\u3002\u4f8b\u5982\uff0c\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u751f\u6210\u4e00\u4e2a\u53d1\u9001\u90ae\u4ef6\u7684\u4efb\u52a1\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">goCopy code<code>php artisan make:job SendEmail\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u9762\u7684\u547d\u4ee4\u5c06\u5728app\/Jobs\u76ee\u5f55\u4e0b\u521b\u5efa\u4e00\u4e2aSendEmail.php\u6587\u4ef6\u3002\u5728\u8be5\u6587\u4ef6\u4e2d\uff0c\u53ef\u4ee5\u5b9a\u4e49\u53d1\u9001\u90ae\u4ef6\u7684\u5177\u4f53\u64cd\u4f5c\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>namespace App\\Jobs;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Foundation\\Bus\\Dispatchable;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\n\nclass SendEmail implements ShouldQueue\n{\n    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;\n\n    public function handle()\n    {\n        \/\/ \u53d1\u9001\u90ae\u4ef6\u7684\u5177\u4f53\u64cd\u4f5c\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u9762\u7684\u4efb\u52a1\u5b9e\u73b0\u4e86ShouldQueue\u63a5\u53e3\uff0c\u8868\u793a\u8be5\u4efb\u52a1\u53ef\u4ee5\u88ab\u52a0\u5165\u961f\u5217\u4e2d\u6267\u884c\u3002\u5728handle\u65b9\u6cd5\u4e2d\uff0c\u53ef\u4ee5\u5b9a\u4e49\u53d1\u9001\u90ae\u4ef6\u7684\u5177\u4f53\u64cd\u4f5c\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u914d\u7f6e\u961f\u5217\u9a71\u52a8\u7a0b\u5e8f<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528config\/queue.php\u914d\u7f6e\u6587\u4ef6\u6765\u914d\u7f6e\u961f\u5217\u9a71\u52a8\u7a0b\u5e8f\u3002\u8be5\u6587\u4ef6\u5305\u542b\u4e86\u5404\u79cd\u53ef\u7528\u7684\u961f\u5217\u9a71\u52a8\u7a0b\u5e8f\u4ee5\u53ca\u5b83\u4eec\u7684\u914d\u7f6e\u4fe1\u606f\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u6765\u914d\u7f6eRedis\u961f\u5217\u9a71\u52a8\u7a0b\u5e8f\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>'default' =&gt; env('QUEUE_CONNECTION', 'redis'),\n\n'connections' =&gt; [\n\n    'redis' =&gt; [\n        'driver' =&gt; 'redis',\n        'connection' =&gt; 'default',\n        'queue' =&gt; env('REDIS_QUEUE', 'default'),\n        'retry_after' =&gt; 90,\n        'block_for' =&gt; null,\n    ],\n\n],\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u914d\u7f6e\u4e2d\uff0c\u5c06\u961f\u5217\u9a71\u52a8\u7a0b\u5e8f\u8bbe\u7f6e\u4e3aRedis\uff0c\u5e76\u5b9a\u4e49\u4e86\u4e0eRedis\u8fde\u63a5\u7684\u53c2\u6570\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u52a0\u5165\u961f\u5217<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528dispatch\u65b9\u6cd5\u5c06\u4efb\u52a1\u52a0\u5165\u961f\u5217\u4e2d\u3002\u4f8b\u5982\uff0c\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u5c06SendEmail\u4efb\u52a1\u52a0\u5165\u961f\u5217\u4e2d\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>use App\\Jobs\\SendEmail;\n\nSendEmail::dispatch();\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u4ee3\u7801\u4e2d\uff0c\u4f7f\u7528dispatch\u65b9\u6cd5\u5c06SendEmail\u4efb\u52a1\u52a0\u5165\u961f\u5217\u4e2d\u3002\u4efb\u52a1\u5c06\u5728\u540e\u53f0\u5f02\u6b65\u6267\u884c\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u5904\u7406\u961f\u5217\u4efb\u52a1<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528Artisan\u547d\u4ee4\u6765\u5904\u7406\u961f\u5217\u4efb\u52a1\u3002\u4f8b\u5982\uff0c\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u6765\u5904\u7406\u961f\u5217\u4efb\u52a1\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">arduinoCopy code<code>php artisan queue:work\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u9762\u7684\u547d\u4ee4\u5c06\u542f\u52a8\u4e00\u4e2a\u961f\u5217\u8fdb\u7a0b\uff0c\u4ece\u961f\u5217\u4e2d\u53d6\u51fa\u4efb\u52a1\u5e76\u6267\u884c\u3002\u901a\u8fc7\u914d\u7f6esupervisor\uff0c\u53ef\u4ee5\u5c06<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u7ee7\u7eed<\/p>\n\n\n\n<p>queue:work\u547d\u4ee4\u8bbe\u7f6e\u4e3a\u5b88\u62a4\u8fdb\u7a0b\uff0c\u4ece\u800c\u5b9e\u73b0\u957f\u671f\u8fd0\u884c\u961f\u5217\u8fdb\u7a0b\u7684\u529f\u80fd\u3002<\/p>\n\n\n\n<p>\u9664\u4e86\u4e0a\u9762\u7684\u6b65\u9aa4\u5916\uff0cLaravel\u961f\u5217\u8fd8\u63d0\u4f9b\u4e86\u8bb8\u591a\u5176\u4ed6\u529f\u80fd\uff0c\u4f8b\u5982\u4efb\u52a1\u95f4\u7684\u4f9d\u8d56\u5173\u7cfb\u3001\u4efb\u52a1\u6267\u884c\u5931\u8d25\u7684\u5904\u7406\u3001\u4efb\u52a1\u961f\u5217\u7684\u76d1\u63a7\u7b49\u3002\u901a\u8fc7\u4f7f\u7528Laravel\u961f\u5217\uff0c\u53ef\u4ee5\u8f7b\u677e\u5730\u5b9e\u73b0\u5bf9Web\u5e94\u7528\u7a0b\u5e8f\u4e2d\u8017\u65f6\u4efb\u52a1\u7684\u5f02\u6b65\u5904\u7406\uff0c\u63d0\u9ad8Web\u5e94\u7528\u7a0b\u5e8f\u7684\u54cd\u5e94\u901f\u5ea6\u548c\u6027\u80fd\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91ca\u521b\u5efa\u4e0e\u8fd0\u884c\u961f\u5217\u4efb\u52a1<\/p>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u521b\u5efa\u548c\u8fd0\u884c\u961f\u5217\u4efb\u52a1\u7684\u6b65\u9aa4\u5982\u4e0b\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u521b\u5efa\u4efb\u52a1<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528Artisan\u547d\u4ee4\u5feb\u901f\u751f\u6210\u4efb\u52a1\u6587\u4ef6\u3002\u4f8b\u5982\uff0c\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u751f\u6210\u4e00\u4e2a\u53d1\u9001\u90ae\u4ef6\u7684\u4efb\u52a1\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">goCopy code<code>php artisan make:job SendEmail\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u9762\u7684\u547d\u4ee4\u5c06\u5728app\/Jobs\u76ee\u5f55\u4e0b\u521b\u5efa\u4e00\u4e2aSendEmail.php\u6587\u4ef6\u3002\u5728\u8be5\u6587\u4ef6\u4e2d\uff0c\u53ef\u4ee5\u5b9a\u4e49\u53d1\u9001\u90ae\u4ef6\u7684\u5177\u4f53\u64cd\u4f5c\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>namespace App\\Jobs;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Foundation\\Bus\\Dispatchable;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\n\nclass SendEmail implements ShouldQueue\n{\n    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;\n\n    public function handle()\n    {\n        \/\/ \u53d1\u9001\u90ae\u4ef6\u7684\u5177\u4f53\u64cd\u4f5c\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u9762\u7684\u4efb\u52a1\u5b9e\u73b0\u4e86ShouldQueue\u63a5\u53e3\uff0c\u8868\u793a\u8be5\u4efb\u52a1\u53ef\u4ee5\u88ab\u52a0\u5165\u961f\u5217\u4e2d\u6267\u884c\u3002\u5728handle\u65b9\u6cd5\u4e2d\uff0c\u53ef\u4ee5\u5b9a\u4e49\u53d1\u9001\u90ae\u4ef6\u7684\u5177\u4f53\u64cd\u4f5c\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u5c06\u4efb\u52a1\u52a0\u5165\u961f\u5217<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528dispatch\u65b9\u6cd5\u5c06\u4efb\u52a1\u52a0\u5165\u961f\u5217\u4e2d\u3002\u4f8b\u5982\uff0c\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u5c06SendEmail\u4efb\u52a1\u52a0\u5165\u961f\u5217\u4e2d\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>use App\\Jobs\\SendEmail;\n\nSendEmail::dispatch();\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u4ee3\u7801\u4e2d\uff0c\u4f7f\u7528dispatch\u65b9\u6cd5\u5c06SendEmail\u4efb\u52a1\u52a0\u5165\u961f\u5217\u4e2d\u3002\u4efb\u52a1\u5c06\u5728\u540e\u53f0\u5f02\u6b65\u6267\u884c\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u8fd0\u884c\u961f\u5217\u8fdb\u7a0b<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u9700\u8981\u8fd0\u884c\u961f\u5217\u8fdb\u7a0b\u6765\u5904\u7406\u961f\u5217\u4efb\u52a1\u3002\u53ef\u4ee5\u4f7f\u7528Artisan\u547d\u4ee4\u6765\u8fd0\u884c\u961f\u5217\u8fdb\u7a0b\u3002\u4f8b\u5982\uff0c\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u6765\u8fd0\u884c\u961f\u5217\u8fdb\u7a0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">arduinoCopy code<code>php artisan queue:work\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u9762\u7684\u547d\u4ee4\u5c06\u542f\u52a8\u4e00\u4e2a\u961f\u5217\u8fdb\u7a0b\uff0c\u4ece\u961f\u5217\u4e2d\u53d6\u51fa\u4efb\u52a1\u5e76\u6267\u884c\u3002\u53ef\u4ee5\u4f7f\u7528&#8211;queue\u9009\u9879\u6765\u6307\u5b9a\u8981\u5904\u7406\u7684\u961f\u5217\u540d\u79f0\u3002\u4f8b\u5982\uff0c\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u6765\u5904\u7406\u540d\u4e3aemails\u7684\u961f\u5217\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">arduinoCopy code<code>php artisan queue:work --queue=emails\n<\/code><\/pre>\n\n\n\n<p>\u9664\u4e86\u4e0a\u9762\u7684\u6b65\u9aa4\u5916\uff0cLaravel\u961f\u5217\u8fd8\u63d0\u4f9b\u4e86\u8bb8\u591a\u5176\u4ed6\u529f\u80fd\uff0c\u4f8b\u5982\u4efb\u52a1\u95f4\u7684\u4f9d\u8d56\u5173\u7cfb\u3001\u4efb\u52a1\u6267\u884c\u5931\u8d25\u7684\u5904\u7406\u3001\u4efb\u52a1\u961f\u5217\u7684\u76d1\u63a7\u7b49\u3002\u901a\u8fc7\u4f7f\u7528Laravel\u961f\u5217\uff0c\u53ef\u4ee5\u8f7b\u677e\u5730\u5b9e\u73b0\u5bf9Web\u5e94\u7528\u7a0b\u5e8f\u4e2d\u8017\u65f6\u4efb\u52a1\u7684\u5f02\u6b65\u5904\u7406\uff0c\u63d0\u9ad8Web\u5e94\u7528\u7a0b\u5e8f\u7684\u54cd\u5e94\u901f\u5ea6\u548c\u6027\u80fd\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u7ee7\u7eed<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u914d\u7f6e\u961f\u5217\u9a71\u52a8\u7a0b\u5e8f<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528config\/queue.php\u914d\u7f6e\u6587\u4ef6\u6765\u914d\u7f6e\u961f\u5217\u9a71\u52a8\u7a0b\u5e8f\u3002\u8be5\u6587\u4ef6\u5305\u542b\u4e86\u5404\u79cd\u53ef\u7528\u7684\u961f\u5217\u9a71\u52a8\u7a0b\u5e8f\u4ee5\u53ca\u5b83\u4eec\u7684\u914d\u7f6e\u4fe1\u606f\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u6765\u914d\u7f6eRedis\u961f\u5217\u9a71\u52a8\u7a0b\u5e8f\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>'default' =&gt; env('QUEUE_CONNECTION', 'redis'),\n\n'connections' =&gt; [\n\n    'redis' =&gt; [\n        'driver' =&gt; 'redis',\n        'connection' =&gt; 'default',\n        'queue' =&gt; env('REDIS_QUEUE', 'default'),\n        'retry_after' =&gt; 90,\n        'block_for' =&gt; null,\n    ],\n\n],\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u914d\u7f6e\u4e2d\uff0c\u5c06\u961f\u5217\u9a71\u52a8\u7a0b\u5e8f\u8bbe\u7f6e\u4e3aRedis\uff0c\u5e76\u5b9a\u4e49\u4e86\u4e0eRedis\u8fde\u63a5\u7684\u53c2\u6570\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"5\">\n<li>\u76d1\u63a7\u961f\u5217\u4efb\u52a1<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528Artisan\u547d\u4ee4\u6765\u76d1\u63a7\u961f\u5217\u4efb\u52a1\u7684\u72b6\u6001\u3002\u4f8b\u5982\uff0c\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u6765\u5217\u51fa\u6240\u6709\u7b49\u5f85\u6267\u884c\u7684\u4efb\u52a1\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">arduinoCopy code<code>php artisan queue:pending\n<\/code><\/pre>\n\n\n\n<p>\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u6765\u5217\u51fa\u6240\u6709\u6b63\u5728\u6267\u884c\u7684\u4efb\u52a1\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">arduinoCopy code<code>php artisan queue:working\n<\/code><\/pre>\n\n\n\n<p>\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u6765\u5217\u51fa\u6240\u6709\u5df2\u5b8c\u6210\u7684\u4efb\u52a1\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">arduinoCopy code<code>php artisan queue:done\n<\/code><\/pre>\n\n\n\n<p>\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u6765\u5217\u51fa\u6240\u6709\u5931\u8d25\u7684\u4efb\u52a1\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">arduinoCopy code<code>php artisan queue:failed\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u547d\u4ee4\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528&#8211;queue\u9009\u9879\u6765\u6307\u5b9a\u8981\u76d1\u63a7\u7684\u961f\u5217\u540d\u79f0\u3002<\/p>\n\n\n\n<p>\u901a\u8fc7\u4f7f\u7528\u4ee5\u4e0a\u6b65\u9aa4\uff0c\u5c31\u53ef\u4ee5\u5728Laravel\u4e2d\u521b\u5efa\u548c\u8fd0\u884c\u961f\u5217\u4efb\u52a1\u3002Laravel\u961f\u5217\u8fd8\u63d0\u4f9b\u4e86\u8bb8\u591a\u5176\u4ed6\u529f\u80fd\uff0c\u4f8b\u5982\u4efb\u52a1\u95f4\u7684\u4f9d\u8d56\u5173\u7cfb\u3001\u4efb\u52a1\u6267\u884c\u5931\u8d25\u7684\u5904\u7406\u3001\u4efb\u52a1\u961f\u5217\u7684\u76d1\u63a7\u7b49\u3002\u901a\u8fc7\u4f7f\u7528Laravel\u961f\u5217\uff0c\u53ef\u4ee5\u8f7b\u677e\u5730\u5b9e\u73b0\u5bf9Web\u5e94\u7528\u7a0b\u5e8f\u4e2d\u8017\u65f6\u4efb\u52a1\u7684\u5f02\u6b65\u5904\u7406\uff0c\u63d0\u9ad8Web\u5e94\u7528\u7a0b\u5e8f\u7684\u54cd\u5e94\u901f\u5ea6\u548c\u6027\u80fd\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91ca\u5982\u4f55\u7f16\u5199\u6d4b\u8bd5\u7528\u4f8b<\/p>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528PHPUnit\u6d4b\u8bd5\u6846\u67b6\u6765\u7f16\u5199\u548c\u8fd0\u884c\u6d4b\u8bd5\u7528\u4f8b\u3002Laravel\u63d0\u4f9b\u4e86\u5185\u7f6e\u7684PHPUnit\u6d4b\u8bd5\u5de5\u5177\uff0c\u5e76\u63d0\u4f9b\u4e86\u8bb8\u591a\u6709\u7528\u7684\u529f\u80fd\uff0c\u4f8b\u5982\u6570\u636e\u5e93\u6d4b\u8bd5\u3001HTTP\u8bf7\u6c42\u6d4b\u8bd5\u3001\u90ae\u4ef6\u6d4b\u8bd5\u7b49\u3002<\/p>\n\n\n\n<p>\u4ee5\u4e0b\u662f\u5728Laravel\u4e2d\u7f16\u5199\u6d4b\u8bd5\u7528\u4f8b\u7684\u6b65\u9aa4\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u521b\u5efa\u6d4b\u8bd5\u6587\u4ef6<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u6d4b\u8bd5\u6587\u4ef6\u901a\u5e38\u5b58\u653e\u5728tests\u76ee\u5f55\u4e0b\u3002\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u5feb\u901f\u751f\u6210\u6d4b\u8bd5\u6587\u4ef6\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bashCopy code<code>php artisan make:test ExampleTest\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u9762\u7684\u547d\u4ee4\u5c06\u5728tests\/Feature\u76ee\u5f55\u4e0b\u521b\u5efa\u4e00\u4e2aExampleTest.php\u6587\u4ef6\u3002\u5728\u8be5\u6587\u4ef6\u4e2d\uff0c\u53ef\u4ee5\u7f16\u5199\u6d4b\u8bd5\u7528\u4f8b\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u7f16\u5199\u6d4b\u8bd5\u7528\u4f8b<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u6d4b\u8bd5\u7528\u4f8b\u901a\u5e38\u662f\u4e00\u4e2a\u7ee7\u627f\u4e86PHPUnit\\Framework\\TestCase\u7c7b\u7684PHP\u7c7b\u3002\u6d4b\u8bd5\u7528\u4f8b\u53ef\u4ee5\u5305\u542b\u591a\u4e2a\u6d4b\u8bd5\u65b9\u6cd5\uff0c\u6bcf\u4e2a\u6d4b\u8bd5\u65b9\u6cd5\u90fd\u7528\u4e8e\u6d4b\u8bd5\u4e00\u4e2a\u7279\u5b9a\u7684\u529f\u80fd\u3002<\/p>\n\n\n\n<p>\u4ee5\u4e0b\u662f\u4e00\u4e2a\u7b80\u5355\u7684\u6d4b\u8bd5\u7528\u4f8b\u793a\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>namespace Tests\\Feature;\n\nuse Illuminate\\Foundation\\Testing\\RefreshDatabase;\nuse Illuminate\\Foundation\\Testing\\WithFaker;\nuse Tests\\TestCase;\n\nclass ExampleTest extends TestCase\n{\n    \/**\n     * A basic test example.\n     *\n     * @return void\n     *\/\n    public function testBasicTest()\n    {\n        $response = $this-&gt;get('\/');\n\n        $response-&gt;assertStatus(200);\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u6d4b\u8bd5\u7528\u4f8b\u4e2d\uff0c\u4f7f\u7528get\u65b9\u6cd5\u53d1\u9001\u4e00\u4e2aHTTP\u8bf7\u6c42\uff0c\u5e76\u4f7f\u7528assertStatus\u65b9\u6cd5\u65ad\u8a00\u54cd\u5e94\u72b6\u6001\u7801\u662f\u5426\u4e3a200\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u8fd0\u884c\u6d4b\u8bd5\u7528\u4f8b<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u6765\u8fd0\u884c\u6d4b\u8bd5\u7528\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bashCopy code<code>php artisan test\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u547d\u4ee4\u5c06\u8fd0\u884ctests\u76ee\u5f55\u4e0b\u7684\u6240\u6709\u6d4b\u8bd5\u7528\u4f8b\u3002\u53ef\u4ee5\u4f7f\u7528&#8211;filter\u9009\u9879\u6765\u6307\u5b9a\u8981\u8fd0\u884c\u7684\u6d4b\u8bd5\u7528\u4f8b\u540d\u79f0\u3002\u4f8b\u5982\uff0c\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u6765\u8fd0\u884cExampleTest\u6d4b\u8bd5\u7528\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bashCopy code<code>php artisan test --filter=ExampleTest\n<\/code><\/pre>\n\n\n\n<p>\u9664\u4e86\u4e0a\u9762\u7684\u6b65\u9aa4\u5916\uff0cLaravel\u6d4b\u8bd5\u8fd8\u63d0\u4f9b\u4e86\u8bb8\u591a\u5176\u4ed6\u529f\u80fd\uff0c\u4f8b\u5982\u6570\u636e\u5e93\u6d4b\u8bd5\u3001HTTP\u8bf7\u6c42\u6d4b\u8bd5\u3001\u90ae\u4ef6\u6d4b\u8bd5\u7b49\u3002\u901a\u8fc7\u4f7f\u7528Laravel\u6d4b\u8bd5\uff0c\u53ef\u4ee5\u8f7b\u677e\u5730\u6d4b\u8bd5Web\u5e94\u7528\u7a0b\u5e8f\u7684\u5404\u4e2a\u65b9\u9762\uff0c\u5e76\u786e\u4fdd\u4ee3\u7801\u7684\u6b63\u786e\u6027\u548c\u53ef\u9760\u6027\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u7ee7\u7eed<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u6570\u636e\u5e93\u6d4b\u8bd5<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528\u6570\u636e\u5e93\u6d4b\u8bd5\u6765\u6d4b\u8bd5\u6570\u636e\u5e93\u64cd\u4f5c\u7684\u6b63\u786e\u6027\u3002\u53ef\u4ee5\u4f7f\u7528Laravel\u63d0\u4f9b\u7684artisan\u547d\u4ee4\u6765\u751f\u6210\u6d4b\u8bd5\u6570\u636e\u5e93\u3002\u4f8b\u5982\uff0c\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u6765\u751f\u6210\u6d4b\u8bd5\u6570\u636e\u5e93\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cssCopy code<code>php artisan migrate --database=testing\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u9762\u7684\u547d\u4ee4\u5c06\u5728\u6d4b\u8bd5\u73af\u5883\u4e0b\u751f\u6210\u4e00\u4e2a\u540d\u4e3atesting\u7684\u6570\u636e\u5e93\u3002\u53ef\u4ee5\u5728\u6d4b\u8bd5\u7528\u4f8b\u4e2d\u4f7f\u7528\u8be5\u6570\u636e\u5e93\u8fdb\u884c\u6d4b\u8bd5\u3002<\/p>\n\n\n\n<p>\u4ee5\u4e0b\u662f\u4e00\u4e2a\u7b80\u5355\u7684\u6570\u636e\u5e93\u6d4b\u8bd5\u7528\u4f8b\u793a\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>namespace Tests\\Feature;\n\nuse Illuminate\\Foundation\\Testing\\RefreshDatabase;\nuse Illuminate\\Foundation\\Testing\\WithFaker;\nuse Tests\\TestCase;\n\nclass ExampleTest extends TestCase\n{\n    use RefreshDatabase;\n\n    \/**\n     * A basic test example.\n     *\n     * @return void\n     *\/\n    public function testBasicTest()\n    {\n        $user = User::factory()-&gt;create();\n\n        $this-&gt;assertDatabaseHas('users', [\n            'email' =&gt; $user-&gt;email,\n        ]);\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u6d4b\u8bd5\u7528\u4f8b\u4e2d\uff0c\u4f7f\u7528assertDatabaseHas\u65b9\u6cd5\u65ad\u8a00\u6570\u636e\u5e93\u4e2d\u662f\u5426\u5b58\u5728\u4e00\u4e2aemail\u503c\u4e3a$user-&gt;email\u7684\u7528\u6237\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"5\">\n<li>HTTP\u8bf7\u6c42\u6d4b\u8bd5<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528HTTP\u8bf7\u6c42\u6d4b\u8bd5\u6765\u6d4b\u8bd5HTTP\u8bf7\u6c42\u7684\u6b63\u786e\u6027\u3002\u53ef\u4ee5\u4f7f\u7528Laravel\u63d0\u4f9b\u7684HTTP\u8bf7\u6c42\u6d4b\u8bd5\u5de5\u5177\u6765\u53d1\u9001HTTP\u8bf7\u6c42\u5e76\u65ad\u8a00\u54cd\u5e94\u7ed3\u679c\u3002<\/p>\n\n\n\n<p>\u4ee5\u4e0b\u662f\u4e00\u4e2a\u7b80\u5355\u7684HTTP\u8bf7\u6c42\u6d4b\u8bd5\u7528\u4f8b\u793a\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>namespace Tests\\Feature;\n\nuse Illuminate\\Foundation\\Testing\\RefreshDatabase;\nuse Illuminate\\Foundation\\Testing\\WithFaker;\nuse Tests\\TestCase;\n\nclass ExampleTest extends TestCase\n{\n    \/**\n     * A basic test example.\n     *\n     * @return void\n     *\/\n    public function testBasicTest()\n    {\n        $response = $this-&gt;get('\/');\n\n        $response-&gt;assertStatus(200);\n        $response-&gt;assertSee('Welcome to Laravel');\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u6d4b\u8bd5\u7528\u4f8b\u4e2d\uff0c\u4f7f\u7528get\u65b9\u6cd5\u53d1\u9001\u4e00\u4e2aHTTP\u8bf7\u6c42\uff0c\u5e76\u4f7f\u7528assertStatus\u65b9\u6cd5\u65ad\u8a00\u54cd\u5e94\u72b6\u6001\u7801\u662f\u5426\u4e3a200\uff0c\u4f7f\u7528assertSee\u65b9\u6cd5\u65ad\u8a00\u54cd\u5e94\u5185\u5bb9\u662f\u5426\u5305\u542b&#8217;Welcome to Laravel&#8217;\u5b57\u7b26\u4e32\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"6\">\n<li>\u90ae\u4ef6\u6d4b\u8bd5<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528\u90ae\u4ef6\u6d4b\u8bd5\u6765\u6d4b\u8bd5\u90ae\u4ef6\u53d1\u9001\u7684\u6b63\u786e\u6027\u3002\u53ef\u4ee5\u4f7f\u7528Laravel\u63d0\u4f9b\u7684\u90ae\u4ef6\u6d4b\u8bd5\u5de5\u5177\u6765\u53d1\u9001\u6d4b\u8bd5\u90ae\u4ef6\u5e76\u65ad\u8a00\u90ae\u4ef6\u662f\u5426\u88ab\u6210\u529f\u53d1\u9001\u3002<\/p>\n\n\n\n<p>\u4ee5\u4e0b\u662f\u4e00\u4e2a\u7b80\u5355\u7684\u90ae\u4ef6\u6d4b\u8bd5\u7528\u4f8b\u793a\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>namespace Tests\\Feature;\n\nuse Illuminate\\Foundation\\Testing\\RefreshDatabase;\nuse Illuminate\\Foundation\\Testing\\WithFaker;\nuse Illuminate\\Support\\Facades\\Mail;\nuse Tests\\TestCase;\n\nclass ExampleTest extends TestCase\n{\n    \/**\n     * A basic test example.\n     *\n     * @return void\n     *\/\n    public function testBasicTest()\n    {\n        Mail::fake();\n\n        \/\/ \u53d1\u9001\u6d4b\u8bd5\u90ae\u4ef6\n        Mail::send([], [], function ($message) {\n            $message-&gt;to('test@example.com');\n        });\n\n        \/\/ \u65ad\u8a00\u90ae\u4ef6\u662f\u5426\u88ab\u53d1\u9001\n        Mail::assertSent(function ($mail) {\n            return $mail-&gt;hasTo('test@example.com');\n        });\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u5728\u4e0a\u9762\u7684\u6d4b\u8bd5\u7528\u4f8b\u4e2d\uff0c\u4f7f\u7528Mail::fake\u65b9\u6cd5\u6a21\u62df\u90ae\u4ef6\u53d1\u9001\uff0c\u4f7f\u7528Mail::assertSent\u65b9\u6cd5\u65ad\u8a00\u90ae\u4ef6\u662f\u5426\u88ab\u6210\u529f\u53d1\u9001\u3002<\/p>\n\n\n\n<p>\u901a\u8fc7\u4f7f\u7528\u4ee5\u4e0a\u6b65\u9aa4\uff0c\u5c31\u53ef\u4ee5\u5728Laravel\u4e2d\u7f16\u5199\u5404\u79cd\u7c7b\u578b\u7684\u6d4b\u8bd5\u7528\u4f8b\uff0c\u5e76\u786e\u4fddWeb\u5e94\u7528\u7a0b\u5e8f\u7684\u6b63\u786e\u6027\u548c\u53ef\u9760\u6027\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91ca\u5982\u4f55\u8fd0\u884c\u6d4b\u8bd5\u4e0e\u68c0\u67e5\u7ed3\u679c<\/p>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528artisan\u547d\u4ee4\u6765\u8fd0\u884c\u6d4b\u8bd5\u7528\u4f8b\u3002\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u6765\u8fd0\u884c\u6240\u6709\u6d4b\u8bd5\u7528\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bashCopy code<code>php artisan test\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u547d\u4ee4\u5c06\u8fd0\u884ctests\u76ee\u5f55\u4e0b\u7684\u6240\u6709\u6d4b\u8bd5\u7528\u4f8b\u3002<\/p>\n\n\n\n<p>\u53ef\u4ee5\u4f7f\u7528&#8211;filter\u9009\u9879\u6765\u6307\u5b9a\u8981\u8fd0\u884c\u7684\u6d4b\u8bd5\u7528\u4f8b\u540d\u79f0\u3002\u4f8b\u5982\uff0c\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u6765\u8fd0\u884cExampleTest\u6d4b\u8bd5\u7528\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bashCopy code<code>php artisan test --filter=ExampleTest\n<\/code><\/pre>\n\n\n\n<p>\u5728\u8fd0\u884c\u6d4b\u8bd5\u7528\u4f8b\u65f6\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u9009\u9879\u6765\u8bbe\u7f6e\u6d4b\u8bd5\u73af\u5883\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>&#8211;env\uff1a\u8bbe\u7f6e\u8981\u4f7f\u7528\u7684\u73af\u5883\u540d\u79f0\u3002\u9ed8\u8ba4\u4e3atesting\u3002<\/li>\n\n\n\n<li>&#8211;database\uff1a\u8bbe\u7f6e\u8981\u4f7f\u7528\u7684\u6570\u636e\u5e93\u8fde\u63a5\u540d\u79f0\u3002\u9ed8\u8ba4\u4e3atesting\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u5728\u6d4b\u8bd5\u8fd0\u884c\u5b8c\u6210\u540e\uff0cLaravel\u5c06\u5728\u7ec8\u7aef\u8f93\u51fa\u6d4b\u8bd5\u7ed3\u679c\u7684\u6458\u8981\u4fe1\u606f\u3002\u53ef\u4ee5\u5728\u7ec8\u7aef\u4e2d\u67e5\u770b\u6d4b\u8bd5\u7ed3\u679c\uff0c\u5e76\u67e5\u627e\u6d4b\u8bd5\u5931\u8d25\u7684\u539f\u56e0\u3002\u5982\u679c\u6d4b\u8bd5\u8fd0\u884c\u5931\u8d25\uff0c\u53ef\u4ee5\u901a\u8fc7\u67e5\u770bLaravel\u65e5\u5fd7\u6587\u4ef6\u6765\u4e86\u89e3\u5931\u8d25\u539f\u56e0\u7684\u8be6\u7ec6\u4fe1\u606f\u3002<\/p>\n\n\n\n<p>Laravel\u8fd8\u63d0\u4f9b\u4e86\u5176\u4ed6\u5de5\u5177\u6765\u68c0\u67e5\u6d4b\u8bd5\u7ed3\u679c\u3002\u53ef\u4ee5\u5728tests\u76ee\u5f55\u4e0b\u521b\u5efa\u4e00\u4e2aPHPUnit XML\u914d\u7f6e\u6587\u4ef6\uff0c\u7136\u540e\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u6765\u8fd0\u884c\u6d4b\u8bd5\u7528\u4f8b\u5e76\u751f\u6210\u6d4b\u8bd5\u62a5\u544a\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bashCopy code<code>.\/vendor\/bin\/phpunit --log-junit report.xml\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u9762\u7684\u547d\u4ee4\u5c06\u5728\u5f53\u524d\u76ee\u5f55\u4e0b\u751f\u6210\u4e00\u4e2areport.xml\u6587\u4ef6\uff0c\u8be5\u6587\u4ef6\u5305\u542b\u6709\u5173\u6d4b\u8bd5\u7ed3\u679c\u7684\u8be6\u7ec6\u4fe1\u606f\u3002<\/p>\n\n\n\n<p>\u53ef\u4ee5\u4f7f\u7528PHPUnit\u63d0\u4f9b\u7684\u5404\u79cd\u5de5\u5177\u6765\u5206\u6790\u548c\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u6765\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u7684HTML\u7248\u672c\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cssCopy code<code>.\/vendor\/bin\/phpunit --log-junit report.xml --coverage-html report\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u9762\u7684\u547d\u4ee4\u5c06\u5728\u5f53\u524d\u76ee\u5f55\u4e0b\u751f\u6210\u4e00\u4e2areport\u76ee\u5f55\uff0c\u5176\u4e2d\u5305\u542b\u6709\u5173\u6d4b\u8bd5\u7ed3\u679c\u7684HTML\u62a5\u544a\u3002<\/p>\n\n\n\n<p>\u901a\u8fc7\u4f7f\u7528\u4ee5\u4e0a\u6b65\u9aa4\uff0c\u53ef\u4ee5\u5728Laravel\u4e2d\u7f16\u5199\u548c\u8fd0\u884c\u5404\u79cd\u7c7b\u578b\u7684\u6d4b\u8bd5\u7528\u4f8b\uff0c\u5e76\u4f7f\u7528\u5404\u79cd\u5de5\u5177\u6765\u68c0\u67e5\u6d4b\u8bd5\u7ed3\u679c\u3002\u8fd9\u4e9b\u5de5\u5177\u53ef\u4ee5\u5e2e\u52a9\u5f00\u53d1\u4eba\u5458\u5feb\u901f\u5b9a\u4f4d\u548c\u4fee\u590dWeb\u5e94\u7528\u7a0b\u5e8f\u4e2d\u7684\u9519\u8bef\uff0c\u63d0\u9ad8Web\u5e94\u7528\u7a0b\u5e8f\u7684\u53ef\u9760\u6027\u548c\u7a33\u5b9a\u6027\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91ca\u90e8\u7f72Laravel\u9879\u76ee\u5230\u751f\u4ea7\u73af\u5883<\/p>\n\n\n\n<p>\u5c06Laravel\u9879\u76ee\u90e8\u7f72\u5230\u751f\u4ea7\u73af\u5883\u4e2d\uff0c\u901a\u5e38\u9700\u8981\u4ee5\u4e0b\u6b65\u9aa4\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u914d\u7f6eWeb\u670d\u52a1\u5668<\/li>\n<\/ol>\n\n\n\n<p>\u5c06Laravel\u9879\u76ee\u90e8\u7f72\u5230\u751f\u4ea7\u73af\u5883\u4e4b\u524d\uff0c\u9700\u8981\u5148\u914d\u7f6eWeb\u670d\u52a1\u5668\uff0c\u4f8b\u5982Apache\u6216Nginx\u3002\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u751f\u6210Laravel\u9879\u76ee\u7684\u57fa\u672c\u914d\u7f6e\u6587\u4ef6\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">goCopy code<code>php artisan make:htaccess\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u547d\u4ee4\u5c06\u5728\u9879\u76ee\u6839\u76ee\u5f55\u4e0b\u751f\u6210\u4e00\u4e2a.htaccess\u6587\u4ef6\uff0c\u7528\u4e8e\u914d\u7f6eApache\u670d\u52a1\u5668\u3002<\/p>\n\n\n\n<p>\u5bf9\u4e8eNginx\u670d\u52a1\u5668\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u914d\u7f6e\u6587\u4ef6\u793a\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>server {\n    listen 80;\n    server_name example.com;\n    root \/var\/www\/example.com\/public;\n\n    index index.php;\n\n    location \/ {\n        try_files $uri $uri\/ \/index.php?$query_string;\n    }\n\n    location ~ \\.php$ {\n        fastcgi_pass unix:\/var\/run\/php\/php7.4-fpm.sock;\n        fastcgi_index index.php;\n        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n        include fastcgi_params;\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u914d\u7f6e\u6587\u4ef6\u6307\u5b9a\u4e86Nginx\u670d\u52a1\u5668\u7684\u6839\u76ee\u5f55\u3001\u7d22\u5f15\u6587\u4ef6\u3001\u8def\u7531\u89c4\u5219\u548cPHP-FPM\u7684\u914d\u7f6e\u4fe1\u606f\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u914d\u7f6e\u6570\u636e\u5e93<\/li>\n<\/ol>\n\n\n\n<p>\u5728\u5c06Laravel\u9879\u76ee\u90e8\u7f72\u5230\u751f\u4ea7\u73af\u5883\u4e4b\u524d\uff0c\u9700\u8981\u5148\u914d\u7f6e\u6570\u636e\u5e93\u8fde\u63a5\u3002\u53ef\u4ee5\u5728Laravel\u9879\u76ee\u7684.env\u6587\u4ef6\u4e2d\u914d\u7f6e\u6570\u636e\u5e93\u8fde\u63a5\u4fe1\u606f\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u751f\u6210\u5e94\u7528\u5bc6\u94a5<\/li>\n<\/ol>\n\n\n\n<p>\u5728\u5c06Laravel\u9879\u76ee\u90e8\u7f72\u5230\u751f\u4ea7\u73af\u5883\u4e4b\u524d\uff0c\u9700\u8981\u5728.env\u6587\u4ef6\u4e2d\u8bbe\u7f6e\u5e94\u7528\u5bc6\u94a5\u3002\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u751f\u6210\u5e94\u7528\u5bc6\u94a5\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">vbnetCopy code<code>php artisan key:generate\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u547d\u4ee4\u5c06\u5728.env\u6587\u4ef6\u4e2d\u751f\u6210\u4e00\u4e2a\u65b0\u7684APP_KEY\u503c\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u4f18\u5316\u5e94\u7528\u7a0b\u5e8f<\/li>\n<\/ol>\n\n\n\n<p>\u5728\u5c06Laravel\u9879\u76ee\u90e8\u7f72\u5230\u751f\u4ea7\u73af\u5883\u4e4b\u524d\uff0c\u9700\u8981\u5bf9\u5e94\u7528\u7a0b\u5e8f\u8fdb\u884c\u4f18\u5316\u3002\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u5bf9\u5e94\u7528\u7a0b\u5e8f\u8fdb\u884c\u4f18\u5316\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Copy code<code>php artisan optimize\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u547d\u4ee4\u5c06\u7f16\u8bd1\u6240\u6709Laravel\u6846\u67b6\u7ec4\u4ef6\uff0c\u63d0\u9ad8\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u548c\u54cd\u5e94\u901f\u5ea6\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"5\">\n<li>\u914d\u7f6e\u7f13\u5b58<\/li>\n<\/ol>\n\n\n\n<p>\u5728\u5c06Laravel\u9879\u76ee\u90e8\u7f72\u5230\u751f\u4ea7\u73af\u5883\u4e4b\u524d\uff0c\u9700\u8981\u5bf9\u5e94\u7528\u7a0b\u5e8f\u8fdb\u884c\u7f13\u5b58\u3002\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u5bf9\u5e94\u7528\u7a0b\u5e8f\u8fdb\u884c\u7f13\u5b58\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">arduinoCopy code<code>php artisan config:cache\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u547d\u4ee4\u5c06\u7f13\u5b58Laravel\u9879\u76ee\u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u63d0\u9ad8\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u548c\u54cd\u5e94\u901f\u5ea6\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"6\">\n<li>\u90e8\u7f72\u5e94\u7528\u7a0b\u5e8f<\/li>\n<\/ol>\n\n\n\n<p>\u5c06Laravel\u9879\u76ee\u90e8\u7f72\u5230\u751f\u4ea7\u73af\u5883\u4e4b\u524d\uff0c\u9700\u8981\u5c06\u9879\u76ee\u6587\u4ef6\u4e0a\u4f20\u5230\u670d\u52a1\u5668\u3002\u53ef\u4ee5\u4f7f\u7528FTP\u3001SCP\u6216rsync\u7b49\u5de5\u5177\u5c06\u6587\u4ef6\u4e0a\u4f20\u5230\u670d\u52a1\u5668\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"7\">\n<li>\u542f\u52a8\u961f\u5217<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel\u5e94\u7528\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u961f\u5217\u65f6\uff0c\u9700\u8981\u5728\u670d\u52a1\u5668\u4e0a\u542f\u52a8\u961f\u5217\u3002\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u5728\u670d\u52a1\u5668\u4e0a\u542f\u52a8\u961f\u5217\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">arduinoCopy code<code>php artisan queue:work\n<\/code><\/pre>\n\n\n\n<p>\u8be5\u547d\u4ee4\u5c06\u542f\u52a8\u961f\u5217\u5904\u7406\u5668\uff0c\u5904\u7406\u961f\u5217\u4e2d\u7684\u4efb\u52a1\u3002<\/p>\n\n\n\n<p>\u901a\u8fc7\u4ee5\u4e0a\u6b65\u9aa4\uff0c\u53ef\u4ee5\u5c06Laravel\u9879\u76ee\u6210\u529f\u90e8\u7f72\u5230\u751f\u4ea7\u73af\u5883\u4e2d\uff0c\u5e76\u786e\u4fdd\u5e94\u7528\u7a0b\u5e8f\u7684\u7a33\u5b9a\u6027\u548c\u53ef\u9760\u6027\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91caLaravel\u4f9d\u8d56\u6ce8\u5165\u4e0e\u670d\u52a1\u5bb9\u5668<\/p>\n\n\n\n<p>Laravel\u4f9d\u8d56\u6ce8\u5165\u548c\u670d\u52a1\u5bb9\u5668\u662fLaravel\u6846\u67b6\u7684\u4e24\u4e2a\u6838\u5fc3\u7279\u6027\u3002\u8fd9\u4e9b\u7279\u6027\u53ef\u4ee5\u5e2e\u52a9\u5f00\u53d1\u4eba\u5458\u8f7b\u677e\u7ba1\u7406\u5e94\u7528\u7a0b\u5e8f\u4e2d\u7684\u4f9d\u8d56\u9879\uff0c\u5e76\u63d0\u9ad8\u5e94\u7528\u7a0b\u5e8f\u7684\u53ef\u6d4b\u8bd5\u6027\u3001\u53ef\u7ef4\u62a4\u6027\u548c\u53ef\u6269\u5c55\u6027\u3002<\/p>\n\n\n\n<p>\u4f9d\u8d56\u6ce8\u5165\u662f\u6307\u5c06\u4f9d\u8d56\u9879\u6ce8\u5165\u5230\u5bf9\u8c61\u4e2d\uff0c\u800c\u4e0d\u662f\u5728\u5bf9\u8c61\u5185\u90e8\u5b9e\u4f8b\u5316\u5b83\u4eec\u3002\u8fd9\u79cd\u6280\u672f\u53ef\u4ee5\u5e2e\u52a9\u5f00\u53d1\u4eba\u5458\u8f7b\u677e\u5730\u66f4\u6539\u5e94\u7528\u7a0b\u5e8f\u4e2d\u7684\u4f9d\u8d56\u9879\uff0c\u800c\u4e0d\u5fc5\u4fee\u6539\u5bf9\u8c61\u7684\u6e90\u4ee3\u7801\u3002Laravel\u6846\u67b6\u901a\u8fc7\u4f9d\u8d56\u6ce8\u5165\u5bb9\u5668\u63d0\u4f9b\u4e86\u4e00\u79cd\u65b9\u4fbf\u7684\u65b9\u6cd5\u6765\u7ba1\u7406\u4f9d\u8d56\u9879\u3002\u4f9d\u8d56\u6ce8\u5165\u5bb9\u5668\u662f\u4e00\u4e2a\u5bf9\u8c61\uff0c\u7528\u4e8e\u7ef4\u62a4\u5bf9\u8c61\u4e4b\u95f4\u7684\u4f9d\u8d56\u5173\u7cfb\u3002<\/p>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528\u4f9d\u8d56\u6ce8\u5165\u5bb9\u5668\u7ed1\u5b9a\u4f9d\u8d56\u9879\u3002\u7ed1\u5b9a\u662f\u6307\u5c06\u4f9d\u8d56\u9879\u4e0e\u63a5\u53e3\u6216\u7c7b\u5173\u8054\u8d77\u6765\u3002\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u5c06\u4f9d\u8d56\u9879\u7ed1\u5b9a\u5230\u63a5\u53e3\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>app()-&gt;bind(InterfaceName::class, ClassName::class);\n<\/code><\/pre>\n\n\n\n<p>\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u5c06\u4f9d\u8d56\u9879\u7ed1\u5b9a\u5230\u7c7b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>app()-&gt;bind(ClassName::class, function ($app) {\n    return new ClassName($app-&gt;make(Dependency::class));\n});\n<\/code><\/pre>\n\n\n\n<p>\u670d\u52a1\u5bb9\u5668\u662fLaravel\u6846\u67b6\u4e2d\u7684\u53e6\u4e00\u4e2a\u6838\u5fc3\u7279\u6027\u3002\u670d\u52a1\u5bb9\u5668\u662f\u4f9d\u8d56\u6ce8\u5165\u5bb9\u5668\u7684\u4e00\u4e2a\u5177\u4f53\u5b9e\u73b0\uff0c\u5b83\u7528\u4e8e\u7ba1\u7406Laravel\u5e94\u7528\u7a0b\u5e8f\u4e2d\u7684\u6240\u6709\u670d\u52a1\u3002\u670d\u52a1\u662f\u6307\u5e94\u7528\u7a0b\u5e8f\u4e2d\u7684\u4efb\u4f55\u5bf9\u8c61\uff0c\u4f8b\u5982\u6570\u636e\u5e93\u8fde\u63a5\u3001\u90ae\u4ef6\u53d1\u9001\u5668\u6216\u4efb\u4f55\u81ea\u5b9a\u4e49\u7c7b\u3002<\/p>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528\u670d\u52a1\u5bb9\u5668\u6ce8\u518c\u670d\u52a1\u3002\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u5c06\u670d\u52a1\u6ce8\u518c\u5230\u670d\u52a1\u5bb9\u5668\u4e2d\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>app()-&gt;bind(ServiceName::class, function ($app) {\n    return new ServiceName($app-&gt;make(Dependency::class));\n});\n<\/code><\/pre>\n\n\n\n<p>\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u4ece\u670d\u52a1\u5bb9\u5668\u4e2d\u89e3\u6790\u670d\u52a1\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>$service = app()-&gt;make(ServiceName::class);\n<\/code><\/pre>\n\n\n\n<p>\u4e5f\u53ef\u4ee5\u5728\u7c7b\u7684\u6784\u9020\u51fd\u6570\u4e2d\u58f0\u660e\u670d\u52a1\u4f9d\u8d56\u9879\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>public function __construct(ServiceName $service)\n{\n    $this-&gt;service = $service;\n}\n<\/code><\/pre>\n\n\n\n<p>Laravel\u7684\u4f9d\u8d56\u6ce8\u5165\u548c\u670d\u52a1\u5bb9\u5668\u529f\u80fd\u63d0\u4f9b\u4e86\u4e00\u79cd\u65b9\u4fbf\u7684\u65b9\u6cd5\u6765\u7ba1\u7406\u5e94\u7528\u7a0b\u5e8f\u4e2d\u7684\u4f9d\u8d56\u9879\u548c\u670d\u52a1\uff0c\u5e76\u63d0\u9ad8\u4e86\u5e94\u7528\u7a0b\u5e8f\u7684\u53ef\u6d4b\u8bd5\u6027\u3001\u53ef\u7ef4\u62a4\u6027\u548c\u53ef\u6269\u5c55\u6027\u3002\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u8f7b\u677e\u66f4\u6539\u5e94\u7528\u7a0b\u5e8f\u4e2d\u7684\u4f9d\u8d56\u9879\u548c\u670d\u52a1\uff0c\u5e76\u5728\u5e94\u7528\u7a0b\u5e8f\u4e2d\u5b9e\u73b0\u9ad8\u5ea6\u53ef\u5b9a\u5236\u7684\u529f\u80fd\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u7ee7\u7eed<\/p>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u4f9d\u8d56\u6ce8\u5165\u548c\u670d\u52a1\u5bb9\u5668\u7684\u7279\u6027\u8fd8\u6709\u4e00\u4e9b\u9ad8\u7ea7\u7528\u6cd5\uff0c\u5305\u62ec\u4ee5\u4e0b\u5185\u5bb9\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u81ea\u52a8\u89e3\u6790<\/li>\n<\/ol>\n\n\n\n<p>Laravel\u7684\u670d\u52a1\u5bb9\u5668\u53ef\u4ee5\u81ea\u52a8\u89e3\u6790\u5bf9\u8c61\u4e4b\u95f4\u7684\u4f9d\u8d56\u5173\u7cfb\uff0c\u4ece\u800c\u4e0d\u9700\u8981\u624b\u52a8\u6307\u5b9a\u6bcf\u4e2a\u4f9d\u8d56\u9879\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u5728\u7c7b\u7684\u6784\u9020\u51fd\u6570\u4e2d\u58f0\u660e\u4e00\u4e2a\u4f9d\u8d56\u9879\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>public function __construct(ServiceName $service)\n{\n    $this-&gt;service = $service;\n}\n<\/code><\/pre>\n\n\n\n<p>Laravel\u7684\u670d\u52a1\u5bb9\u5668\u5c06\u81ea\u52a8\u89e3\u6790\u4f9d\u8d56\u9879\uff0c\u521b\u5efaServiceName\u5b9e\u4f8b\uff0c\u5e76\u5c06\u5176\u6ce8\u5165\u5230\u6784\u9020\u51fd\u6570\u4e2d\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u670d\u52a1\u63d0\u4f9b\u8005<\/li>\n<\/ol>\n\n\n\n<p>\u670d\u52a1\u63d0\u4f9b\u8005\u662f\u4e00\u79cd\u5728Laravel\u5e94\u7528\u7a0b\u5e8f\u4e2d\u6ce8\u518c\u670d\u52a1\u7684\u673a\u5236\u3002\u670d\u52a1\u63d0\u4f9b\u8005\u662f\u4e00\u4e2a\u7c7b\uff0c\u7528\u4e8e\u5c01\u88c5\u6ce8\u518c\u670d\u52a1\u7684\u903b\u8f91\u3002\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u751f\u6210\u670d\u52a1\u63d0\u4f9b\u8005\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">goCopy code<code>php artisan make:provider ServiceProviderName\n<\/code><\/pre>\n\n\n\n<p>\u751f\u6210\u7684\u670d\u52a1\u63d0\u4f9b\u8005\u5c06\u5b58\u50a8\u5728app\/Providers\u76ee\u5f55\u4e0b\u3002<\/p>\n\n\n\n<p>\u53ef\u4ee5\u5728\u670d\u52a1\u63d0\u4f9b\u8005\u7684register\u65b9\u6cd5\u4e2d\u6ce8\u518c\u670d\u52a1\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u5728\u670d\u52a1\u63d0\u4f9b\u8005\u4e2d\u6ce8\u518c\u4e00\u4e2a\u5355\u4f8b\u670d\u52a1\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>public function register()\n{\n    $this-&gt;app-&gt;singleton(ServiceName::class, function ($app) {\n        return new ServiceName();\n    });\n}\n<\/code><\/pre>\n\n\n\n<p>\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u5c06\u670d\u52a1\u63d0\u4f9b\u8005\u6ce8\u518c\u5230Laravel\u5e94\u7528\u7a0b\u5e8f\u4e2d\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>$this-&gt;app-&gt;register(ServiceProviderName::class);\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u4e0a\u4e0b\u6587\u7ed1\u5b9a<\/li>\n<\/ol>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4e3a\u6bcf\u4e2a\u8bf7\u6c42\u521b\u5efa\u4e00\u4e2a\u72ec\u7acb\u7684\u670d\u52a1\u5bb9\u5668\u5b9e\u4f8b\u3002\u53ef\u4ee5\u4f7f\u7528\u4e0a\u4e0b\u6587\u7ed1\u5b9a\u529f\u80fd\u5c06\u670d\u52a1\u5bb9\u5668\u4e0e\u8bf7\u6c42\u4e0a\u4e0b\u6587\u7ed1\u5b9a\u5728\u4e00\u8d77\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u521b\u5efa\u4e00\u4e2a\u670d\u52a1\u5bb9\u5668\u5b9e\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>$container = $app-&gt;make(Container::class);\n<\/code><\/pre>\n\n\n\n<p>\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u5c06\u670d\u52a1\u5bb9\u5668\u4e0e\u8bf7\u6c42\u4e0a\u4e0b\u6587\u7ed1\u5b9a\u5728\u4e00\u8d77\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>$container-&gt;when(SomeController::class)\n          -&gt;needs(ServiceInterface::class)\n          -&gt;give(ServiceImplementation::class);\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u9762\u7684\u4ee3\u7801\u5c06\u5728SomeController\u7c7b\u4e2d\u6ce8\u5165ServiceInterface\u5b9e\u4f8b\uff0c\u5e76\u4f7f\u7528ServiceImplementation\u5b9e\u73b0\u7c7b\u3002<\/p>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u4f9d\u8d56\u6ce8\u5165\u548c\u670d\u52a1\u5bb9\u5668\u662f\u5f00\u53d1Web\u5e94\u7528\u7a0b\u5e8f\u7684\u5fc5\u5907\u5de5\u5177\u3002\u4f7f\u7528\u8fd9\u4e9b\u7279\u6027\uff0c\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u8f7b\u677e\u5730\u7ba1\u7406\u5e94\u7528\u7a0b\u5e8f\u4e2d\u7684\u4f9d\u8d56\u9879\u548c\u670d\u52a1\uff0c\u5e76\u63d0\u9ad8\u5e94\u7528\u7a0b\u5e8f\u7684\u53ef\u6d4b\u8bd5\u6027\u3001\u53ef\u7ef4\u62a4\u6027\u548c\u53ef\u6269\u5c55\u6027\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91caLaravel\u4e8b\u4ef6\u4e0e\u76d1\u542c\u5668<\/p>\n\n\n\n<p>Laravel\u4e8b\u4ef6\u548c\u76d1\u542c\u5668\u662f\u4e00\u79cd\u53ef\u6269\u5c55\u7684\u673a\u5236\uff0c\u7528\u4e8e\u5728\u5e94\u7528\u7a0b\u5e8f\u4e2d\u5904\u7406\u5404\u79cd\u4e8b\u4ef6\u3002\u4e8b\u4ef6\u662f\u5e94\u7528\u7a0b\u5e8f\u4e2d\u53d1\u751f\u7684\u4efb\u4f55\u52a8\u4f5c\u6216\u72b6\u6001\u7684\u62bd\u8c61\u8868\u793a\u3002\u76d1\u542c\u5668\u662f\u4e8b\u4ef6\u53d1\u751f\u65f6\u8981\u6267\u884c\u7684\u903b\u8f91\u3002<\/p>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u751f\u6210\u4e8b\u4ef6\u548c\u76d1\u542c\u5668\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">csharpCopy code<code>php artisan make:event EventName\nphp artisan make:listener ListenerName --event=EventName\n<\/code><\/pre>\n\n\n\n<p>\u751f\u6210\u7684\u4e8b\u4ef6\u548c\u76d1\u542c\u5668\u5c06\u5206\u522b\u5b58\u50a8\u5728app\/Events\u548capp\/Listeners\u76ee\u5f55\u4e2d\u3002<\/p>\n\n\n\n<p>\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u5728\u5e94\u7528\u7a0b\u5e8f\u4e2d\u89e6\u53d1\u4e8b\u4ef6\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>event(new EventName($data));\n<\/code><\/pre>\n\n\n\n<p>\u5728Laravel\u4e2d\uff0c\u4e8b\u4ef6\u548c\u76d1\u542c\u5668\u901a\u5e38\u662f\u901a\u8fc7\u89c2\u5bdf\u8005\u6a21\u5f0f\u5b9e\u73b0\u7684\u3002\u53ef\u4ee5\u5728\u4e8b\u4ef6\u7c7b\u4e2d\u5b9a\u4e49\u9700\u8981\u4f20\u9012\u7ed9\u76d1\u542c\u5668\u7684\u6570\u636e\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>class EventName\n{\n    use Dispatchable, InteractsWithSockets, SerializesModels;\n\n    public $data;\n\n    public function __construct($data)\n    {\n        $this-&gt;data = $data;\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u53ef\u4ee5\u5728\u76d1\u542c\u5668\u7c7b\u4e2d\u5b9a\u4e49\u8981\u6267\u884c\u7684\u903b\u8f91\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>class ListenerName\n{\n    public function handle(EventName $event)\n    {\n        \/\/ \u5904\u7406\u4e8b\u4ef6\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u5c06\u76d1\u542c\u5668\u6ce8\u518c\u5230\u4e8b\u4ef6\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>protected $listen = [\n    EventName::class =&gt; [\n        ListenerName::class,\n    ],\n];\n<\/code><\/pre>\n\n\n\n<p>\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u5728\u5e94\u7528\u7a0b\u5e8f\u4e2d\u6ce8\u518c\u4e8b\u4ef6\u548c\u76d1\u542c\u5668\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>Event::listen(EventName::class, ListenerName::class);\n<\/code><\/pre>\n\n\n\n<p>Laravel\u4e8b\u4ef6\u548c\u76d1\u542c\u5668\u53ef\u4ee5\u7528\u4e8e\u8bb8\u591a\u573a\u666f\uff0c\u4f8b\u5982\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u53d1\u9001\u7535\u5b50\u90ae\u4ef6<\/li>\n<\/ol>\n\n\n\n<p>\u53ef\u4ee5\u5728\u4e8b\u4ef6\u4e2d\u89e6\u53d1\u7535\u5b50\u90ae\u4ef6\u53d1\u9001\uff0c\u5e76\u4f7f\u7528\u76d1\u542c\u5668\u5b9e\u73b0\u7535\u5b50\u90ae\u4ef6\u53d1\u9001\u903b\u8f91\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u5904\u7406\u961f\u5217\u4efb\u52a1<\/li>\n<\/ol>\n\n\n\n<p>\u53ef\u4ee5\u5728\u4e8b\u4ef6\u4e2d\u89e6\u53d1\u961f\u5217\u4efb\u52a1\uff0c\u5e76\u4f7f\u7528\u76d1\u542c\u5668\u5904\u7406\u961f\u5217\u4efb\u52a1\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u8bb0\u5f55\u65e5\u5fd7<\/li>\n<\/ol>\n\n\n\n<p>\u53ef\u4ee5\u5728\u4e8b\u4ef6\u4e2d\u8bb0\u5f55\u65e5\u5fd7\uff0c\u5e76\u4f7f\u7528\u76d1\u542c\u5668\u5c06\u65e5\u5fd7\u5199\u5165\u6587\u4ef6\u6216\u6570\u636e\u5e93\u3002<\/p>\n\n\n\n<p>Laravel\u4e8b\u4ef6\u548c\u76d1\u542c\u5668\u63d0\u4f9b\u4e86\u4e00\u79cd\u7b80\u5355\u800c\u5f3a\u5927\u7684\u65b9\u6cd5\u6765\u5904\u7406\u5e94\u7528\u7a0b\u5e8f\u4e2d\u7684\u5404\u79cd\u4e8b\u4ef6\u3002\u8fd9\u79cd\u673a\u5236\u53ef\u4ee5\u5e2e\u52a9\u5f00\u53d1\u4eba\u5458\u7f16\u5199\u6a21\u5757\u5316\u3001\u53ef\u91cd\u7528\u548c\u53ef\u6269\u5c55\u7684\u4ee3\u7801\uff0c\u540c\u65f6\u63d0\u9ad8\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u548c\u53ef\u7ef4\u62a4\u6027\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91caLaravel\u7f13\u5b58\u4e0e\u6027\u80fd\u4f18\u5316<\/p>\n\n\n\n<p>Laravel\u7f13\u5b58\u673a\u5236\u662f\u63d0\u9ad8\u5e94\u7528\u7a0b\u5e8f\u6027\u80fd\u7684\u4e00\u79cd\u6709\u6548\u65b9\u6cd5\u3002\u7f13\u5b58\u53ef\u4ee5\u5c06\u91cd\u590d\u8ba1\u7b97\u6216\u67e5\u8be2\u7ed3\u679c\u5b58\u50a8\u5728\u5185\u5b58\u6216\u78c1\u76d8\u4e2d\uff0c\u4ee5\u4fbf\u5c06\u6765\u66f4\u5feb\u5730\u8bbf\u95ee\u8fd9\u4e9b\u7ed3\u679c\u3002\u5728Laravel\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u7f13\u5b58\u9a71\u52a8\u7a0b\u5e8f\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u6587\u4ef6\u7f13\u5b58\u9a71\u52a8\u7a0b\u5e8f<\/li>\n<\/ol>\n\n\n\n<p>\u6587\u4ef6\u7f13\u5b58\u9a71\u52a8\u7a0b\u5e8f\u5c06\u7f13\u5b58\u5b58\u50a8\u5728\u6587\u4ef6\u7cfb\u7edf\u4e2d\u3002\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u5c06\u503c\u5b58\u50a8\u5728\u7f13\u5b58\u4e2d\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>Cache::put('key', 'value', $minutes);\n<\/code><\/pre>\n\n\n\n<p>\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u4ece\u7f13\u5b58\u4e2d\u68c0\u7d22\u503c\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>$value = Cache::get('key');\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u6570\u636e\u5e93\u7f13\u5b58\u9a71\u52a8\u7a0b\u5e8f<\/li>\n<\/ol>\n\n\n\n<p>\u6570\u636e\u5e93\u7f13\u5b58\u9a71\u52a8\u7a0b\u5e8f\u5c06\u7f13\u5b58\u5b58\u50a8\u5728\u6570\u636e\u5e93\u4e2d\u3002\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u5c06\u503c\u5b58\u50a8\u5728\u7f13\u5b58\u4e2d\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>Cache::store('database')-&gt;put('key', 'value', $minutes);\n<\/code><\/pre>\n\n\n\n<p>\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u4ece\u7f13\u5b58\u4e2d\u68c0\u7d22\u503c\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>$value = Cache::store('database')-&gt;get('key');\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>Memcached\u7f13\u5b58\u9a71\u52a8\u7a0b\u5e8f<\/li>\n<\/ol>\n\n\n\n<p>Memcached\u7f13\u5b58\u9a71\u52a8\u7a0b\u5e8f\u5c06\u7f13\u5b58\u5b58\u50a8\u5728Memcached\u4e2d\u3002\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u5c06\u503c\u5b58\u50a8\u5728\u7f13\u5b58\u4e2d\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>Cache::store('memcached')-&gt;put('key', 'value', $minutes);\n<\/code><\/pre>\n\n\n\n<p>\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u4ece\u7f13\u5b58\u4e2d\u68c0\u7d22\u503c\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>$value = Cache::store('memcached')-&gt;get('key');\n<\/code><\/pre>\n\n\n\n<p>\u9664\u4e86\u4f7f\u7528\u7f13\u5b58\u6765\u63d0\u9ad8\u6027\u80fd\u5916\uff0c\u8fd8\u53ef\u4ee5\u91c7\u53d6\u5176\u4ed6\u63aa\u65bd\u6765\u4f18\u5316Laravel\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u4f7f\u7528Laravel\u961f\u5217<\/li>\n<\/ol>\n\n\n\n<p>\u961f\u5217\u662f\u4e00\u79cd\u5c06\u5de5\u4f5c\u63a8\u8fdf\u5230\u540e\u53f0\u5904\u7406\u7684\u673a\u5236\u3002\u53ef\u4ee5\u4f7f\u7528\u961f\u5217\u6765\u5f02\u6b65\u5904\u7406\u8f83\u6162\u6216\u8d44\u6e90\u5bc6\u96c6\u578b\u4efb\u52a1\uff0c\u4ece\u800c\u51cf\u5c11\u5e94\u7528\u7a0b\u5e8f\u54cd\u5e94\u65f6\u95f4\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u4f7f\u7528Laravel\u8c03\u8bd5\u5de5\u5177<\/li>\n<\/ol>\n\n\n\n<p>Laravel\u63d0\u4f9b\u4e86\u4e00\u7cfb\u5217\u8c03\u8bd5\u5de5\u5177\uff0c\u4f8b\u5982\u8c03\u8bd5\u6761\u548c\u4ee3\u7801\u5206\u6790\u5668\uff0c\u53ef\u4ee5\u5e2e\u52a9\u5f00\u53d1\u4eba\u5458\u5206\u6790\u548c\u4f18\u5316\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u4f7f\u7528Redis\u4f5c\u4e3a\u7f13\u5b58\u9a71\u52a8\u7a0b\u5e8f<\/li>\n<\/ol>\n\n\n\n<p>Redis\u662f\u4e00\u79cd\u9ad8\u6027\u80fd\u7684\u5185\u5b58\u7f13\u5b58\u6570\u636e\u5e93\u3002\u53ef\u4ee5\u4f7f\u7528Redis\u4f5c\u4e3a\u7f13\u5b58\u9a71\u52a8\u7a0b\u5e8f\uff0c\u4ee5\u63d0\u9ad8\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u4f18\u5316\u6570\u636e\u5e93\u67e5\u8be2<\/li>\n<\/ol>\n\n\n\n<p>\u53ef\u4ee5\u4f18\u5316\u6570\u636e\u5e93\u67e5\u8be2\u6765\u63d0\u9ad8\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u4f7f\u7528\u7d22\u5f15\u3001\u907f\u514d\u4f7f\u7528\u5b50\u67e5\u8be2\u548c\u4f18\u5316\u67e5\u8be2\u8bed\u53e5\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"5\">\n<li>\u4f7f\u7528CDN\u52a0\u901f\u9759\u6001\u8d44\u6e90<\/li>\n<\/ol>\n\n\n\n<p>\u53ef\u4ee5\u4f7f\u7528\u5185\u5bb9\u5206\u53d1\u7f51\u7edc\uff08CDN\uff09\u6765\u52a0\u901f\u9759\u6001\u8d44\u6e90\uff08\u4f8b\u5982\u56fe\u50cf\u3001\u6837\u5f0f\u8868\u548cJavaScript\u6587\u4ef6\uff09\u7684\u52a0\u8f7d\u901f\u5ea6\u3002<\/p>\n\n\n\n<p>\u603b\u4e4b\uff0cLaravel\u7f13\u5b58\u673a\u5236\u662f\u4e00\u79cd\u6709\u6548\u7684\u6027\u80fd\u4f18\u5316\u65b9\u6cd5\uff0c\u53ef\u4ee5\u51cf\u5c11\u5e94\u7528\u7a0b\u5e8f\u7684\u54cd\u5e94\u65f6\u95f4\u548c\u8d44\u6e90\u4f7f\u7528\u3002\u8fd8\u53ef\u4ee5\u91c7\u53d6\u5176\u4ed6\u63aa\u65bd\u6765\u8fdb\u4e00\u6b65\u4f18\u5316\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\uff0c\u4f8b\u5982\u4f7f\u7528\u961f\u5217\u3001\u8c03\u8bd5\u5de5\u5177\u548cRedis\u4f5c\u4e3a\u7f13\u5b58\u9a71\u52a8\u7a0b\u5e8f\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91ca\u672c\u8bfe\u7a0b\u6240\u5b66\u5185\u5bb9\u56de\u987e<\/p>\n\n\n\n<p>\u5728\u672c\u8bfe\u7a0b\u4e2d\uff0c\u6211\u4eec\u5b66\u4e60\u4e86Laravel\u6846\u67b6\u7684\u5404\u4e2a\u65b9\u9762\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u4ee5\u4e0b\u5185\u5bb9\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Laravel\u6846\u67b6\u7684\u4f18\u52bf\uff1a\u6211\u4eec\u5b66\u4e60\u4e86Laravel\u6846\u67b6\u76f8\u5bf9\u4e8e\u5176\u4ed6\u6846\u67b6\u7684\u4f18\u52bf\uff0c\u4f8b\u5982\u7b80\u5355\u6613\u5b66\u3001\u529f\u80fd\u5f3a\u5927\u3001\u6613\u4e8e\u6269\u5c55\u548c\u9ad8\u5ea6\u5b89\u5168\u6027\u7b49\u3002<\/li>\n\n\n\n<li>Laravel\u7684\u9002\u7528\u9879\u76ee\u7c7b\u578b\uff1a\u6211\u4eec\u5b66\u4e60\u4e86Laravel\u9002\u7528\u4e8e\u54ea\u4e9b\u9879\u76ee\u7c7b\u578b\uff0c\u4f8b\u5982Web\u5e94\u7528\u7a0b\u5e8f\u3001\u7535\u5b50\u5546\u52a1\u7f51\u7ad9\u3001\u793e\u4ea4\u5a92\u4f53\u5e73\u53f0\u7b49\u3002<\/li>\n\n\n\n<li>\u8bfe\u7a0b\u76ee\u6807\u4e0e\u5927\u7eb2\uff1a\u6211\u4eec\u4ecb\u7ecd\u4e86\u672c\u8bfe\u7a0b\u7684\u76ee\u6807\u548c\u5927\u7eb2\uff0c\u4ee5\u53ca\u6211\u4eec\u5c06\u8981\u6db5\u76d6\u7684\u5404\u4e2a\u4e3b\u9898\u3002<\/li>\n\n\n\n<li>\u5b89\u88c5PHP\u3001Composer\u4e0eLaravel\uff1a\u6211\u4eec\u5b66\u4e60\u4e86\u5982\u4f55\u5b89\u88c5PHP\u3001Composer\u548cLaravel\uff0c\u5e76\u8bbe\u7f6e\u597d\u5f00\u53d1\u73af\u5883\u3002<\/li>\n\n\n\n<li>\u521b\u5efaLaravel\u9879\u76ee\uff1a\u6211\u4eec\u5b66\u4e60\u4e86\u5982\u4f55\u4f7f\u7528\u547d\u4ee4\u884c\u5de5\u5177\u521b\u5efaLaravel\u9879\u76ee\uff0c\u5e76\u4e86\u89e3\u4e86Laravel\u9879\u76ee\u7684\u57fa\u672c\u76ee\u5f55\u7ed3\u6784\u3002<\/li>\n\n\n\n<li>\u914d\u7f6e\u5f00\u53d1\u73af\u5883\uff1a\u6211\u4eec\u5b66\u4e60\u4e86\u5982\u4f55\u914d\u7f6e\u5f00\u53d1\u73af\u5883\uff0c\u5305\u62ec\u8c03\u8bd5\u3001\u65e5\u5fd7\u548c\u9519\u8bef\u5904\u7406\u3002<\/li>\n\n\n\n<li>MVC\u67b6\u6784\u4e0eLaravel\u4e2d\u7684\u5b9e\u73b0\uff1a\u6211\u4eec\u5b66\u4e60\u4e86MVC\u67b6\u6784\u7684\u57fa\u672c\u6982\u5ff5\uff0c\u5e76\u4e86\u89e3\u4e86\u5982\u4f55\u5728Laravel\u4e2d\u5b9e\u73b0MVC\u67b6\u6784\u3002<\/li>\n\n\n\n<li>\u8def\u7531\u7684\u57fa\u672c\u6982\u5ff5\u4e0e\u5b9a\u4e49\uff1a\u6211\u4eec\u5b66\u4e60\u4e86\u4ec0\u4e48\u662f\u8def\u7531\uff0c\u4ee5\u53ca\u5982\u4f55\u5728Laravel\u4e2d\u5b9a\u4e49\u8def\u7531\u3002<\/li>\n\n\n\n<li>\u63a7\u5236\u5668\u7684\u521b\u5efa\u4e0e\u8def\u7531\u4e4b\u95f4\u7684\u5173\u8054\uff1a\u6211\u4eec\u5b66\u4e60\u4e86\u5982\u4f55\u521b\u5efa\u63a7\u5236\u5668\uff0c\u5e76\u4e86\u89e3\u4e86\u5982\u4f55\u5c06\u63a7\u5236\u5668\u4e0e\u8def\u7531\u5173\u8054\u8d77\u6765\u3002<\/li>\n\n\n\n<li>\u89c6\u56fe\u7684\u57fa\u672c\u6982\u5ff5\u4e0e\u521b\u5efa\uff1a\u6211\u4eec\u5b66\u4e60\u4e86\u4ec0\u4e48\u662f\u89c6\u56fe\uff0c\u4ee5\u53ca\u5982\u4f55\u521b\u5efa\u89c6\u56fe\u3002<\/li>\n\n\n\n<li>Blade\u6a21\u677f\u5f15\u64ce\uff1a\u6211\u4eec\u5b66\u4e60\u4e86Laravel\u4e2d\u7684Blade\u6a21\u677f\u5f15\u64ce\uff0c\u5e76\u4e86\u89e3\u4e86\u5982\u4f55\u4f7f\u7528\u6a21\u677f\u7ee7\u627f\u548c\u7ec4\u4ef6\u5316\u3002<\/li>\n\n\n\n<li>\u6570\u636e\u5e93\u914d\u7f6e\u4e0e\u8fde\u63a5\uff1a\u6211\u4eec\u5b66\u4e60\u4e86\u5982\u4f55\u914d\u7f6e\u548c\u8fde\u63a5\u6570\u636e\u5e93\uff0c\u5e76\u4e86\u89e3\u4e86\u5982\u4f55\u4f7f\u7528.env\u6587\u4ef6\u6765\u4fdd\u62a4\u654f\u611f\u4fe1\u606f\u3002<\/li>\n\n\n\n<li>Eloquent ORM\u6982\u8ff0\uff1a\u6211\u4eec\u5b66\u4e60\u4e86Laravel\u7684Eloquent ORM\uff0c\u4ee5\u53ca\u5982\u4f55\u4f7f\u7528Eloquent\u8fdb\u884c\u6570\u636e\u5e93\u64cd\u4f5c\u3002<\/li>\n\n\n\n<li>\u521b\u5efa\u6a21\u578b\u4e0e\u8fc1\u79fb\u6587\u4ef6\uff1a\u6211\u4eec\u5b66\u4e60\u4e86\u5982\u4f55\u521b\u5efa\u6a21\u578b\u548c\u8fc1\u79fb\u6587\u4ef6\uff0c\u4ee5\u4fbf\u4f7f\u7528Eloquent\u8fdb\u884c\u6570\u636e\u5e93\u64cd\u4f5c\u3002<\/li>\n\n\n\n<li>Eloquent\u5173\u7cfb\uff1a\u6211\u4eec\u5b66\u4e60\u4e86\u5982\u4f55\u5728Eloquent\u4e2d\u5b9a\u4e49\u548c\u4f7f\u7528\u5173\u7cfb\uff0c\u4f8b\u5982\u4e00\u5bf9\u4e00\u3001\u4e00\u5bf9\u591a\u548c\u591a\u5bf9\u591a\u5173\u7cfb\u3002<\/li>\n\n\n\n<li>\u521b\u5efa\u8868\u5355\uff1a\u6211\u4eec\u5b66\u4e60\u4e86\u5982\u4f55\u5728Laravel\u4e2d\u521b\u5efa\u8868\u5355\uff0c\u5e76\u4e86\u89e3\u4e86\u8868\u5355\u9a8c\u8bc1\u7684\u57fa\u672c\u6982\u5ff5\u3002<\/li>\n\n\n\n<li>\u63a5\u6536\u8868\u5355\u6570\u636e\u4e0e\u5904\u7406\uff1a\u6211\u4eec\u5b66\u4e60\u4e86\u5982\u4f55\u63a5\u6536\u8868\u5355\u6570\u636e\u5e76\u5bf9\u5176\u8fdb\u884c\u5904\u7406\uff0c\u4ee5\u53ca\u5982\u4f55\u4f7f\u7528Flash\u6d88\u606f\u6765\u63d0\u4f9b\u7528\u6237\u53cd\u9988\u3002<\/li>\n\n\n\n<li>\u6570\u636e\u9a8c\u8bc1\u4e0e\u9519\u8bef\u5904\u7406\uff1a\u6211\u4eec\u5b66\u4e60\u4e86\u5982\u4f55\u5bf9\u8868\u5355\u6570\u636e\u8fdb\u884c\u9a8c\u8bc1\uff0c\u5e76\u4e86<\/li>\n<\/ol>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u7ee7\u7eed<\/p>\n\n\n\n<p>\u4e86\u89e3\u4e86\u5982\u4f55\u5728\u9a8c\u8bc1\u5931\u8d25\u65f6\u8fdb\u884c\u9519\u8bef\u5904\u7406\uff0c\u4ee5\u53ca\u5982\u4f55\u4f7f\u7528Laravel\u7684\u5f02\u5e38\u5904\u7406\u673a\u5236\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"19\">\n<li>Laravel\u5185\u7f6e\u8ba4\u8bc1\u7cfb\u7edf\uff1a\u6211\u4eec\u5b66\u4e60\u4e86Laravel\u5185\u7f6e\u7684\u8ba4\u8bc1\u7cfb\u7edf\uff0c\u5e76\u4e86\u89e3\u4e86\u5982\u4f55\u4f7f\u7528\u5b83\u6765\u8fdb\u884c\u7528\u6237\u6ce8\u518c\u3001\u767b\u5f55\u548c\u6ce8\u9500\u3002<\/li>\n\n\n\n<li>\u7528\u6237\u6388\u6743\u4e0e\u7b56\u7565\uff1a\u6211\u4eec\u5b66\u4e60\u4e86\u5982\u4f55\u4f7f\u7528Laravel\u7684\u6388\u6743\u7cfb\u7edf\u548c\u7b56\u7565\u6765\u9650\u5236\u7528\u6237\u5bf9\u5e94\u7528\u7a0b\u5e8f\u8d44\u6e90\u7684\u8bbf\u95ee\u3002<\/li>\n\n\n\n<li>Laravel\u4efb\u52a1\u8c03\u5ea6\u6982\u8ff0\uff1a\u6211\u4eec\u5b66\u4e60\u4e86Laravel\u4efb\u52a1\u8c03\u5ea6\u7684\u57fa\u672c\u6982\u5ff5\uff0c\u4ee5\u53ca\u5982\u4f55\u4f7f\u7528\u8ba1\u5212\u4efb\u52a1\u548c\u961f\u5217\u4efb\u52a1\u3002<\/li>\n\n\n\n<li>\u961f\u5217\u7684\u57fa\u672c\u6982\u5ff5\u4e0e\u914d\u7f6e\uff1a\u6211\u4eec\u5b66\u4e60\u4e86\u4ec0\u4e48\u662f\u961f\u5217\uff0c\u4ee5\u53ca\u5982\u4f55\u914d\u7f6e\u548c\u4f7f\u7528\u961f\u5217\u3002<\/li>\n\n\n\n<li>\u521b\u5efa\u4e0e\u8fd0\u884c\u961f\u5217\u4efb\u52a1\uff1a\u6211\u4eec\u5b66\u4e60\u4e86\u5982\u4f55\u521b\u5efa\u548c\u8fd0\u884c\u961f\u5217\u4efb\u52a1\uff0c\u5e76\u4e86\u89e3\u4e86\u961f\u5217\u4efb\u52a1\u7684\u751f\u547d\u5468\u671f\u3002<\/li>\n\n\n\n<li>\u7f16\u5199\u6d4b\u8bd5\u7528\u4f8b\uff1a\u6211\u4eec\u5b66\u4e60\u4e86\u5982\u4f55\u4f7f\u7528Laravel\u7684\u6d4b\u8bd5\u5de5\u5177\u6765\u7f16\u5199\u6d4b\u8bd5\u7528\u4f8b\uff0c\u4ee5\u786e\u4fdd\u5e94\u7528\u7a0b\u5e8f\u7684\u529f\u80fd\u6b63\u786e\u3002<\/li>\n\n\n\n<li>\u8fd0\u884c\u6d4b\u8bd5\u4e0e\u68c0\u67e5\u7ed3\u679c\uff1a\u6211\u4eec\u5b66\u4e60\u4e86\u5982\u4f55\u8fd0\u884c\u6d4b\u8bd5\u7528\u4f8b\uff0c\u5e76\u4e86\u89e3\u4e86\u5982\u4f55\u68c0\u67e5\u6d4b\u8bd5\u7ed3\u679c\u548c\u5206\u6790\u4ee3\u7801\u8986\u76d6\u7387\u3002<\/li>\n\n\n\n<li>\u90e8\u7f72Laravel\u9879\u76ee\u5230\u751f\u4ea7\u73af\u5883\uff1a\u6211\u4eec\u5b66\u4e60\u4e86\u5982\u4f55\u5c06Laravel\u9879\u76ee\u90e8\u7f72\u5230\u751f\u4ea7\u73af\u5883\uff0c\u5e76\u4e86\u89e3\u4e86\u5982\u4f55\u4f18\u5316\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u3002<\/li>\n\n\n\n<li>Laravel\u4f9d\u8d56\u6ce8\u5165\u4e0e\u670d\u52a1\u5bb9\u5668\uff1a\u6211\u4eec\u5b66\u4e60\u4e86Laravel\u7684\u4f9d\u8d56\u6ce8\u5165\u548c\u670d\u52a1\u5bb9\u5668\u673a\u5236\uff0c\u4ee5\u53ca\u5982\u4f55\u4f7f\u7528\u5b83\u4eec\u6765\u63d0\u9ad8\u5e94\u7528\u7a0b\u5e8f\u7684\u53ef\u7ef4\u62a4\u6027\u3002<\/li>\n\n\n\n<li>Laravel\u4e8b\u4ef6\u4e0e\u76d1\u542c\u5668\uff1a\u6211\u4eec\u5b66\u4e60\u4e86Laravel\u7684\u4e8b\u4ef6\u548c\u76d1\u542c\u5668\u673a\u5236\uff0c\u4ee5\u53ca\u5982\u4f55\u4f7f\u7528\u5b83\u4eec\u6765\u5b9e\u73b0\u677e\u8026\u5408\u7684\u5e94\u7528\u7a0b\u5e8f\u67b6\u6784\u3002<\/li>\n\n\n\n<li>Laravel\u7f13\u5b58\u4e0e\u6027\u80fd\u4f18\u5316\uff1a\u6211\u4eec\u5b66\u4e60\u4e86\u5982\u4f55\u4f7f\u7528Laravel\u7684\u7f13\u5b58\u673a\u5236\u6765\u63d0\u9ad8\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\uff0c\u4ee5\u53ca\u5982\u4f55\u4f18\u5316\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u603b\u4e4b\uff0c\u5728\u672c\u8bfe\u7a0b\u4e2d\uff0c\u6211\u4eec\u5168\u9762\u5b66\u4e60\u4e86Laravel\u6846\u67b6\u7684\u5404\u4e2a\u65b9\u9762\uff0c\u5e76\u4e86\u89e3\u4e86\u5982\u4f55\u4f7f\u7528Laravel\u6765\u6784\u5efa\u9ad8\u6548\u3001\u53ef\u7ef4\u62a4\u548c\u5b89\u5168\u7684Web\u5e94\u7528\u7a0b\u5e8f\u3002<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91ca\u5efa\u8bae\u7684\u540e\u7eed\u5b66\u4e60\u8d44\u6e90\u4e0e\u8fdb\u9636\u8bfe\u7a0b<\/p>\n\n\n\n<p>\u5982\u679c\u60a8\u5df2\u7ecf\u5b66\u4e60\u4e86\u672c\u8bfe\u7a0b\u5e76\u5bf9Laravel\u6846\u67b6\u4ea7\u751f\u4e86\u5174\u8da3\uff0c\u4ee5\u4e0b\u662f\u4e00\u4e9b\u5efa\u8bae\u7684\u540e\u7eed\u5b66\u4e60\u8d44\u6e90\u548c\u8fdb\u9636\u8bfe\u7a0b\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u5b98\u65b9\u6587\u6863\uff1aLaravel\u6846\u67b6\u7684\u5b98\u65b9\u6587\u6863\u662f\u4e00\u4e2a\u975e\u5e38\u597d\u7684\u5b66\u4e60\u8d44\u6e90\uff0c\u53ef\u4ee5\u5e2e\u52a9\u60a8\u4e86\u89e3Laravel\u7684\u5404\u4e2a\u65b9\u9762\u3002\u60a8\u53ef\u4ee5\u8bbf\u95ee<a href=\"https:\/\/laravel.com\/docs\/\">Laravel\u5b98\u65b9\u6587\u6863<\/a>\u6765\u67e5\u770b\u5b8c\u6574\u7684\u6587\u6863\u3002<\/li>\n\n\n\n<li>Laracasts\uff1aLaracasts\u662f\u4e00\u4e2a\u975e\u5e38\u53d7\u6b22\u8fce\u7684Laravel\u6559\u7a0b\u7f51\u7ad9\uff0c\u63d0\u4f9b\u4e86\u5927\u91cf\u7684\u89c6\u9891\u6559\u7a0b\u548c\u793a\u4f8b\u4ee3\u7801\uff0c\u53ef\u4ee5\u5e2e\u52a9\u60a8\u66f4\u6df1\u5165\u5730\u4e86\u89e3Laravel\u6846\u67b6\u3002\u60a8\u53ef\u4ee5\u8bbf\u95ee<a href=\"https:\/\/laracasts.com\/\">Laracasts<\/a>\u6765\u83b7\u53d6\u66f4\u591a\u4fe1\u606f\u3002<\/li>\n\n\n\n<li>Laravel News\uff1aLaravel News\u662f\u4e00\u4e2a\u805a\u5408Laravel\u76f8\u5173\u7684\u65b0\u95fb\u3001\u6587\u7ae0\u3001\u6559\u7a0b\u548c\u8d44\u6e90\u7684\u7f51\u7ad9\uff0c\u53ef\u4ee5\u5e2e\u52a9\u60a8\u4e86\u89e3Laravel\u6846\u67b6\u7684\u6700\u65b0\u52a8\u6001\u548c\u6700\u4f73\u5b9e\u8df5\u3002\u60a8\u53ef\u4ee5\u8bbf\u95ee<a href=\"https:\/\/laravel-news.com\/\">Laravel News<\/a>\u6765\u83b7\u53d6\u66f4\u591a\u4fe1\u606f\u3002<\/li>\n\n\n\n<li>Laravel \u5b9e\u6218\u6559\u7a0b\uff1aLaravel \u5b9e\u6218\u6559\u7a0b\u662f\u7531 Laravel \u4e2d\u6587\u793e\u533a\u7f16\u5199\u7684\u4e00\u672c\u9488\u5bf9 Laravel 5.5 \u7684\u4e2d\u6587\u6559\u7a0b\uff0c\u8986\u76d6\u4e86Laravel\u7684\u8bb8\u591a\u65b9\u9762\u3002\u60a8\u53ef\u4ee5\u8bbf\u95ee<a href=\"https:\/\/laravelacademy.org\/post\/8732.html\">Laravel \u5b9e\u6218\u6559\u7a0b<\/a>\u6765\u83b7\u53d6\u66f4\u591a\u4fe1\u606f\u3002<\/li>\n\n\n\n<li>\u8fdb\u9636\u8bfe\u7a0b\uff1a\u5982\u679c\u60a8\u5df2\u7ecf\u638c\u63e1\u4e86Laravel\u6846\u67b6\u7684\u57fa\u672c\u77e5\u8bc6\uff0c\u5e76\u5e0c\u671b\u6df1\u5165\u5b66\u4e60Laravel\u6846\u67b6\u7684\u9ad8\u7ea7\u4e3b\u9898\uff0c\u53ef\u4ee5\u8003\u8651\u53c2\u52a0Laravel\u7684\u8fdb\u9636\u8bfe\u7a0b\uff0c\u4f8b\u5982Laravel Forge\u3001Laravel Vapor\u548cLaravel Nova\u7b49\u3002<\/li>\n<\/ol>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8bf7\u8be6\u7ec6\u89e3\u91caLaravel\u793e\u533a\u4e0e\u751f\u6001<\/p>\n\n\n\n<p>Laravel\u793e\u533a\u662f\u4e00\u4e2a\u5e9e\u5927\u7684\u3001\u5168\u7403\u8303\u56f4\u7684\u5f00\u53d1\u8005\u793e\u533a\uff0c\u7531\u5bf9Laravel\u6846\u67b6\u611f\u5174\u8da3\u7684\u7a0b\u5e8f\u5458\u548c\u5f00\u53d1\u8005\u7ec4\u6210\u3002Laravel\u793e\u533a\u901a\u8fc7\u5404\u79cd\u65b9\u5f0f\u4fc3\u8fdbLaravel\u6846\u67b6\u7684\u4f7f\u7528\u548c\u53d1\u5c55\uff0c\u5305\u62ec\u5f00\u53d1\u548c\u7ef4\u62a4Laravel\u7684\u76f8\u5173\u5de5\u5177\u3001\u5305\u548c\u63d2\u4ef6\uff0c\u4ee5\u53ca\u4e3e\u529e\u548c\u53c2\u52a0\u5404\u79cdLaravel\u6d3b\u52a8\u548c\u4f1a\u8bae\u3002<\/p>\n\n\n\n<p>Laravel\u793e\u533a\u7684\u751f\u6001\u7cfb\u7edf\u4e5f\u975e\u5e38\u4e30\u5bcc\uff0c\u6db5\u76d6\u4e86\u4f17\u591a\u7684Laravel\u6269\u5c55\u3001\u5e93\u548c\u63d2\u4ef6\u3002\u8fd9\u4e9bLaravel\u6269\u5c55\u548c\u63d2\u4ef6\u4e3a\u5f00\u53d1\u4eba\u5458\u63d0\u4f9b\u4e86\u8bb8\u591a\u6709\u7528\u7684\u529f\u80fd\u548c\u5de5\u5177\uff0c\u4f8b\u5982\u793e\u4ea4\u5a92\u4f53\u96c6\u6210\u3001API\u5f00\u53d1\u3001\u6570\u636e\u53ef\u89c6\u5316\u7b49\u7b49\u3002\u4e00\u4e9b\u5e38\u89c1\u7684Laravel\u6269\u5c55\u548c\u63d2\u4ef6\u5305\u62ec\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Laravel Horizon\uff1a\u4e00\u4e2aLaravel\u7684\u961f\u5217\u7ba1\u7406\u5668\uff0c\u53ef\u4ee5\u8ba9\u60a8\u8f7b\u677e\u76d1\u63a7\u3001\u7ba1\u7406\u548c\u90e8\u7f72\u961f\u5217\u4efb\u52a1\u3002<\/li>\n\n\n\n<li>Laravel Echo\uff1a\u4e00\u4e2aLaravel\u7684\u4e8b\u4ef6\u5e7f\u64ad\u5668\uff0c\u53ef\u4ee5\u5c06\u670d\u52a1\u5668\u7aef\u4e8b\u4ef6\u5e7f\u64ad\u5230\u5ba2\u6237\u7aef\uff0c\u5e76\u4f7f\u7528WebSockets\u5b9e\u65f6\u66f4\u65b0\u6570\u636e\u3002<\/li>\n\n\n\n<li>Laravel Scout\uff1a\u4e00\u4e2aLaravel\u7684\u5168\u6587\u641c\u7d22\u5e93\uff0c\u53ef\u4ee5\u4e3a\u60a8\u7684\u5e94\u7528\u7a0b\u5e8f\u63d0\u4f9b\u5f3a\u5927\u7684\u641c\u7d22\u529f\u80fd\u3002<\/li>\n\n\n\n<li>Laravel Passport\uff1a\u4e00\u4e2aLaravel\u7684OAuth2\u670d\u52a1\u5668\uff0c\u53ef\u4ee5\u4e3a\u60a8\u7684\u5e94\u7528\u7a0b\u5e8f\u63d0\u4f9b\u8ba4\u8bc1\u548c\u6388\u6743\u529f\u80fd\u3002<\/li>\n\n\n\n<li>Laravel Socialite\uff1a\u4e00\u4e2aLaravel\u7684\u793e\u4ea4\u5a92\u4f53\u8eab\u4efd\u9a8c\u8bc1\u5e93\uff0c\u53ef\u4ee5\u8ba9\u7528\u6237\u4f7f\u7528\u4ed6\u4eec\u7684\u793e\u4ea4\u5a92\u4f53\u8d26\u6237\u767b\u5f55\u60a8\u7684\u5e94\u7528\u7a0b\u5e8f\u3002<\/li>\n\n\n\n<li>Laravel Debugbar\uff1a\u4e00\u4e2aLaravel\u7684\u8c03\u8bd5\u5de5\u5177\u6761\uff0c\u53ef\u4ee5\u5e2e\u52a9\u60a8\u8bca\u65ad\u548c\u4fee\u590d\u5e94\u7528\u7a0b\u5e8f\u4e2d\u7684\u9519\u8bef\u548c\u95ee\u9898\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u9664\u4e86\u8fd9\u4e9b\u5e38\u89c1\u7684Laravel\u6269\u5c55\u548c\u63d2\u4ef6\u4e4b\u5916\uff0c\u8fd8\u6709\u8bb8\u591a\u5176\u4ed6\u7684Laravel\u5de5\u5177\u548c\u5e93\u53ef\u4f9b\u9009\u62e9\u3002Laravel\u793e\u533a\u4e5f\u4e0d\u65ad\u53d1\u5c55\u548c\u58ee\u5927\uff0c\u4e3aLaravel\u5f00\u53d1\u8005\u63d0\u4f9b\u4e86\u4e00\u4e2a\u4e30\u5bcc\u7684\u8d44\u6e90\u5e93\uff0c\u4ee5\u4fbf\u66f4\u597d\u5730\u4f7f\u7528\u548c\u5b66\u4e60Laravel\u6846\u67b6\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6211\u662f\u8981\u505aIT\u6559\u7a0b\u7684\u89c6\u9891\uff0c\u4f60\u80fd\u5426\u6839\u636e\u7f51\u7ad9\u7684 &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_mi_skip_tracking":false,"footnotes":""},"categories":[23],"tags":[],"class_list":["post-1342","post","type-post","status-publish","format-standard","hentry","category-material"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=\/wp\/v2\/posts\/1342","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1342"}],"version-history":[{"count":1,"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=\/wp\/v2\/posts\/1342\/revisions"}],"predecessor-version":[{"id":1343,"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=\/wp\/v2\/posts\/1342\/revisions\/1343"}],"wp:attachment":[{"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1342"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1342"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1342"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}