{"id":981,"date":"2025-06-12T04:08:41","date_gmt":"2025-06-11T20:08:41","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/981.html"},"modified":"2025-06-12T04:08:41","modified_gmt":"2025-06-11T20:08:41","slug":"%e4%bc%98%e9%9b%85%ef%bc%9a%e5%ae%9a%e4%b9%89%e5%85%b7%e6%9c%89-%e4%b8%80%e5%af%b9%e4%b8%80-%e5%85%b3%e8%81%94%e7%9a%84%e6%95%b0%e6%8d%ae%e8%a1%a8","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/981.html","title":{"rendered":"\u4f18\u96c5\uff1a\u5b9a\u4e49\u5177\u6709 \u4e00\u5bf9\u4e00 \u5173\u8054\u7684\u6570\u636e\u8868"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#20248;&#38597;&#22320;&#35774;&#35745;&#20855;&#26377;&#19968;&#23545;&#19968;&#20851;&#32852;&#30340;&#25968;&#25454;&#34920;&#26159;&#19968;&#31181;&#25552;&#39640;&#25968;&#25454;&#32467;&#26500;&#21644;&#26597;&#35810;&#25928;&#29575;&#30340;&#26377;&#25928;&#26041;&#27861;&#12290;&#20197;&#19979;&#26159;&#22914;&#20309;&#36890;&#36807;SQL&#21019;&#24314;&#36825;&#26679;&#30340;&#34920;&#30340;&#31034;&#20363;&#65306;<\/p>\n<p>&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#21517;&#20026; <code>Customer<\/code> &#30340;&#34920;&#65292;&#23427;&#34920;&#31034;&#23458;&#25143;&#20449;&#24687;&#65292;&#24182;&#19988;&#25105;&#20204;&#24076;&#26395;&#27599;&#20010;&#23458;&#25143;&#19982;&#19968;&#20010;&#21807;&#19968;&#30340;&#22320;&#22336;&#20851;&#32852;&#12290;<\/p>\n<pre><code class=\"language-sql\">CREATE TABLE Customer (\n    CustomerID INT PRIMARY KEY,\n    FirstName VARCHAR(50),\n    LastName VARCHAR(50),\n    Email VARCHAR(100)\n);\n\nCREATE TABLE Address (\n    AddressID INT PRIMARY KEY,\n    Street VARCHAR(255),\n    City VARCHAR(100),\n    State VARCHAR(50),\n    ZipCode VARCHAR(10),\n    CustomerID INT,\n    FOREIGN KEY (CustomerID) REFERENCES Customer(CustomerID)\n);<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65306;<\/p>\n<ul>\n<li><code>Customer<\/code> &#34920;&#21253;&#21547;&#20102;&#23458;&#25143;&#30340;&#22522;&#26412;&#20449;&#24687;&#12290;<\/li>\n<li><code>Address<\/code> &#34920;&#21253;&#21547;&#20102;&#23458;&#25143;&#30340;&#35814;&#32454;&#22320;&#22336;&#20449;&#24687;&#65292;&#24182;&#19988;&#27599;&#20010;&#22320;&#22336;&#37117;&#19982;&#19968;&#20010;&#21807;&#19968;&#30340; <code>CustomerID<\/code> &#20851;&#32852;&#12290;<\/li>\n<\/ul>\n<p>&#36825;&#26679;&#35774;&#35745;&#30340;&#22909;&#22788;&#26159;&#65306;<\/p>\n<ol>\n<li><strong>&#21807;&#19968;&#24615;<\/strong>&#65306;&#27599;&#20010; <code>Customer<\/code> &#21482;&#33021;&#26377;&#19968;&#20010; <code>Address<\/code>&#65292;&#22240;&#27492;&#21487;&#20197;&#30830;&#20445;&#22320;&#22336;&#30340;&#19968;&#33268;&#24615;&#21644;&#23436;&#25972;&#24615;&#12290;<\/li>\n<li><strong>&#26597;&#35810;&#24615;&#33021;<\/strong>&#65306;&#36890;&#36807;&#22806;&#38190;&#32422;&#26463;&#65292;&#25968;&#25454;&#24211;&#24341;&#25806;&#21487;&#20197;&#22312;&#25554;&#20837;&#12289;&#26356;&#26032;&#25110;&#21024;&#38500; <code>Customer<\/code> &#25968;&#25454;&#26102;&#33258;&#21160;&#32500;&#25252; <code>Address<\/code> &#25968;&#25454;&#30340;&#27491;&#30830;&#24615;&#12290;<\/li>\n<\/ol>\n<p>&#22914;&#26524;&#20320;&#38656;&#35201;&#22312;&#19968;&#20010;&#26597;&#35810;&#20013;&#33719;&#21462;&#25152;&#26377;&#23458;&#25143;&#21450;&#20854;&#23545;&#24212;&#30340;&#22320;&#22336;&#65292;&#21487;&#20197;&#20351;&#29992;JOIN&#25805;&#20316;&#65306;<\/p>\n<pre><code class=\"language-sql\">SELECT C.CustomerID, C.FirstName, C.LastName, A.Street, A.City, A.State, A.ZipCode\nFROM Customer C\nJOIN Address A ON C.CustomerID = A.CustomerID;<\/code><\/pre>\n<p>&#36825;&#20010;&#26597;&#35810;&#23558;&#36820;&#22238;&#25152;&#26377;&#23458;&#25143;&#30340;ID&#12289;&#22995;&#21517;&#12289;&#22320;&#22336;&#31561;&#20449;&#24687;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h2>&#20171;&#32461;<\/h2><p>&#23450;&#20041;&#25968;&#25454;&#24211;&#34920;&#20043;&#38388;&#30340;&#20851;&#31995;&#22312;&#20351;&#29992;&#23545;&#35937;&#20851;&#31995;&#26144;&#23556;&#65288;ORM&#65289;&#24037;&#20855;&#22914;Eloquent&#26102;&#65292;&#23545;&#20110;Web&#24320;&#21457;&#33267;&#20851;&#37325;&#35201;&#12290;Eloquent&#30340;&#19968;&#37096;&#20998;Laravel&#26694;&#26550;&#12290;&#19968;&#23545;&#19968;&#30340;&#20851;&#31995;&#26159;&#19968;&#31181;&#20851;&#31995;&#31867;&#22411;&#65292;&#22312;&#19968;&#20010;&#34920;&#20013;&#30340;&#35760;&#24405;&#23545;&#24212;&#20110;&#21478;&#19968;&#20010;&#34920;&#30340;&#21333;&#20010;&#35760;&#24405;&#12290;&#22312;&#36825;&#31687;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23558;&#25506;&#32034;&#22914;&#20309;&#20351;&#29992;Eloquent&#22312;Laravel&#26694;&#26550;&#20013;&#23450;&#20041;&#19968;&#23545;&#19968;&#30340;&#20851;&#31995;&#12290;<\/p><h3>&#29702;&#35299;Eloquent ORM<\/h3><p>Eloquent ORM&#20351;&#24471;&#36890;&#36807;&#27963;&#36291;&#35760;&#24405;&#27169;&#22411;&#19982;&#25968;&#25454;&#24211;&#20132;&#20114;&#21464;&#24471;&#23481;&#26131;&#65292;&#36825;&#20123;&#27169;&#22411;&#20195;&#34920;&#20102;&#24744;&#25968;&#25454;&#24211;&#20013;&#30340;&#34920;&#12290;&#22312;&#28145;&#20837;&#25506;&#35752;&#19968;&#23545;&#19968;&#20851;&#31995;&#20043;&#21069;&#65292;&#29702;&#35299;&#27599;&#20010;Eloquent&#27169;&#22411;&#37117;&#23545;&#24212;&#20110;&#24744;&#25968;&#25454;&#24211;&#20013;&#30340;&#19968;&#20010;&#34920;&#26159;&#38750;&#24120;&#37325;&#35201;&#30340;&#12290;<\/p><h2>&#35774;&#32622;&#20320;&#30340;&#25968;&#25454;&#24211;<\/h2><pre><code>\/\/ User migration\nclass CreateUsersTable extends Migration\n{\n    public function up()\n    {\n        Schema::create('users', function (Blueprint $table) {\n            $table-&gt;id();\n            $table-&gt;string('name');\n            $table-&gt;string('email')-&gt;unique();\n            $table-&gt;timestamps();\n        });\n    }\n}\n\n\/\/ Profile migration\nclass CreateProfilesTable extends Migration\n{\n    public function up()\n    {\n        Schema::create('profiles', function (Blueprint $table) {\n            $table-&gt;id();\n            $table-&gt;unsignedBigInteger('user_id');\n            $table-&gt;string('phone');\n            $table-&gt;text('address');\n            $table-&gt;timestamps();\n\n            $table-&gt;foreign('user_id')-&gt;references('id')-&gt;on('users')-&gt;onDelete('cascade');\n        });\n    }\n}<\/code><\/pre><h2>&#23450;&#20041;&#19968;&#23545;&#19968;&#20851;&#31995;<\/h2><p>&#22312;&#19968;&#23545;&#19968;&#20851;&#31995;&#20013;&#65292;&#20320;&#38656;&#35201;&#38142;&#25509;&#20004;&#20010;&#27169;&#22411;&#12290;&#20363;&#22914;&#65292;&#20551;&#35774;&#26377;&#19968;&#20010;&#29992;&#25143;&#34920;&#21644;&#19968;&#20010;&#35746;&#21333;&#34920;&#12290;<code>User<\/code>&#27169;&#22411;&#24212;&#35813;&#26377;&#19968;&#20010;&#23545;&#24212;&#30340;&#35760;&#24405;&#22312;&#34920;&#20013;&#12290;<code>Profile<\/code>&#27169;&#22411;&#12290;&#22312;Eloquent&#20013;&#65292;&#24744;&#26159;&#22914;&#20309;&#23450;&#20041;&#20851;&#31995;&#30340;&#65311;<\/p><pre><code>\/\/ User model\nclass User extends Authenticatable\n{\n    public function profile()\n    {\n        return $this-&gt;hasOne(Profile::class);\n    }\n}\n\n\/\/ Profile model\nclass Profile extends Model\n{\n    public function user()\n    {\n        return $this-&gt;belongsTo(User::class);\n    }\n}<\/code><\/pre><p>&#22909;&#30340;&#65292;&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<code>User<\/code>&#27169;&#22411;&#65292;&#26377;&#20160;&#20040;&#38382;&#39064;&#21527;&#65311;<code>hasOne<\/code>&#26041;&#27861;&#23450;&#20041;&#20102;&#19968;&#23545;&#19968;&#30340;&#20851;&#31995;&#65292;&#24182;&#26399;&#26395;&#20854;&#30456;&#20851;&#30340;&#27169;&#22411;&#31867;&#20316;&#20026;&#21442;&#25968;&#12290;&#22312;<code>Profile<\/code>&#27169;&#22411;&#65292;&#26377;&#20160;&#20040;&#38382;&#39064;&#21527;&#65311;<code>belongsTo<\/code>&#26041;&#27861;&#34920;&#31034;&#20851;&#31995;&#30340;&#36870;&#21521;&#12290;<\/p><h2>&#27491;&#22312;&#33719;&#21462;&#30456;&#20851;&#35760;&#24405;&#12290;<\/h2><pre><code>\/\/ Fetching profile for a user\n$user = User::find(1);\n$profile = $user-&gt;profile;  \/\/ Eloquent dynamically retrieves the profile\n\n\/\/ Viewing the profile data\nprint_r($profile-&gt;toArray());<\/code><\/pre><p>&#36825;&#27573;&#20195;&#30721;&#29255;&#27573;&#23637;&#31034;&#20102;&#22914;&#20309;&#33719;&#21462;&#29992;&#25143;&#30340;&#20010;&#20154;&#36164;&#26009;&#12290;&#24403;&#20320;&#35775;&#38382;&#23646;&#24615; $user-&gt;profile &#26102;&#65288;&#36825;&#37324;&#20551;&#35774;&#20351;&#29992;&#30340;&#26159; Laravel &#30340; Eloquent ORM&#65289;&#65292;Eloquent &#20250;&#33258;&#21160;&#20174;&#25968;&#25454;&#24211;&#20013;&#21152;&#36733;&#30456;&#20851;&#35760;&#24405;&#65292;&#32780;&#19981;&#38656;&#35201;&#36827;&#34892;&#39069;&#22806;&#30340;&#26597;&#35810;&#25805;&#20316;&#12290;<\/p><h2>&#35774;&#32622;&#39640;&#32423;&#19968;&#23545;&#19968;&#20851;&#31995;<\/h2><p>&#26377;&#26102;&#65292;&#24744;&#25968;&#25454;&#24211;&#20013;&#30340;&#30456;&#20851;&#34920;&#19981;&#31526;&#21512;Laravel&#30340;&#21629;&#21517;&#32422;&#23450;&#12290;&#22312;&#36825;&#31181;&#24773;&#20917;&#19979;&#65292;&#24744;&#21487;&#20197;&#25351;&#23450;&#33258;&#23450;&#20041;&#22806;&#38190;&#21644;&#26412;&#22320;&#38190;&#21015;&#20316;&#20026;arguments&#21040;&#12290;<code>hasOne<\/code>&#21644;&#25105;&#26377;&#20160;&#20040;&#20107;&#24773;&#38656;&#35201;&#24110;&#24537;&#21527;&#65311;<code>belongsTo<\/code>&#26041;&#27861;&#65306;<\/p><pre><code>\/\/ User model with custom foreign key and local key\nclass User extends Authenticatable\n{\n    public function profile()\n    {\n        return $this-&gt;hasOne(Profile::class, 'custom_user_id', 'custom_id');\n    }\n}<\/code><\/pre><p>&#31532;&#20108;&#20010;&#21442;&#25968;&#26159;&#30456;&#20851;&#34920;&#30340;&#22806;&#38190;&#21015;&#21517;&#31216;&#65292;&#31532;&#19977;&#20010;&#21442;&#25968;&#26159;&#29238;&#34920;&#30340;&#26412;&#22320;&#38190;&#21015;&#21517;&#31216;&#12290;<\/p><h2>&#21019;&#24314;&#19968;&#23545;&#22810;&#20851;&#31995;&#30340;&#35760;&#24405;<\/h2><p>&#22312;&#20351;&#29992;Eloquent&#21019;&#24314;&#20855;&#26377;&#19968;&#23545;&#19968;&#20851;&#31995;&#30340;&#35760;&#24405;&#26102;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;<code>create<\/code>&#25552;&#20379;&#30340;ORM&#26041;&#27861;&#65306;<\/p><pre><code>\/\/ Creating a user with a related profile\n$user = User::create(['name' =&gt; 'John Doe', 'email' =&gt; '[email&nbsp;protected]']);\n\n\/\/ Creating the related profile\n$user-&gt;profile()-&gt;create(['phone' =&gt; '123-4567', 'address' =&gt; '123 Main St']);<\/code><\/pre><p>&#36825;&#31181;&#25216;&#26415;&#29305;&#21035;&#36866;&#29992;&#20110;&#22312;&#21019;&#24314;&#20027;&#35760;&#24405;&#26102;&#36731;&#26494;&#35774;&#32622;&#30456;&#20851;&#35760;&#24405;&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>&#23450;&#20041;Eloquent&#20013;&#30340;&#19968;&#23545;&#19968;&#20851;&#31995;&#21487;&#20197;&#35753;Laravel&#24212;&#29992;&#31243;&#24207;&#30340;&#27169;&#22411;&#31616;&#27905;&#22320;&#21453;&#26144;&#25968;&#25454;&#24211;&#27169;&#24335;&#20013;&#30340;&#20851;&#31995;&#12290;&#36890;&#36807;&#21033;&#29992;Eloquent&#20869;&#32622;&#30340;&#20851;&#31995;&#23450;&#20041;&#65292;&#20363;&#22914;<code>hasOne<\/code>and<code>belongsTo<\/code>&#24744;&#36890;&#36807;&#31616;&#21270;&#30456;&#20851;&#35760;&#24405;&#30340;&#33719;&#21462;&#21644;&#21019;&#24314;&#36807;&#31243;&#65292;&#20026;&#24744;&#30340;&#24212;&#29992;&#31243;&#24207;&#25552;&#20379;&#20102;&#19968;&#31181;&#26356;&#31616;&#27905;&#12289;&#26356;&#20855;&#21487;&#32500;&#25252;&#24615;&#30340;&#20195;&#30721;&#32467;&#26500;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312;&#25968;&#25454;&#24211;&#35774;&#35745;&#21644;&#26550;&#26500;&#20013;&#65292;&#19968;&#23545;&#22810;&#65288;Many-to-Many&#65289;&#20851;&#31995;&#26159;&#19968;&#31181;&#24120;&#35265;&#30340;&#27169;&#24335;&#65292;&#23427;&#20801;&#35768;&#20004;&#20010;&#23454;&#20307;&#20043;&#38388;&#23384;&#22312;&#22810;&#23545;&#22810;&#30340;&#20851;&#31995;&#12290;&#22312;&#36825;&#31181;&#24773;&#20917;&#19979;&#65292;&#27599;&#20010;&#20027;&#20307;&#21487;&#20197;&#19982;&#21478;&#19968;&#20010;&#20027;&#20307;&#20851;&#32852;&#22810;&#20010;&#27425;&#20307;&#65292;&#20294;&#27599;&#20010;&#27425;&#20307;&#21482;&#33021;&#23646;&#20110;&#19968;&#20010;&#20027;&#20307;&#12290;<\/p>\n<p>&#20363;&#22914;&#65292;&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&ldquo;&#23458;&#25143;&rdquo;&#23454;&#20307;&#21644;&#19968;&#20010;&ldquo;&#35746;&#21333;&rdquo;&#23454;&#20307;&#65292;&#20854;&#20013;&ldquo;&#23458;&#25143;&rdquo;&#23454;&#20307;&#21487;&#20197;&#25317;&#26377;&#22810;&#20010;&ldquo;&#35746;&#21333;&rdquo;&#65292;&#32780;&ldquo;&#35746;&#21333;&rdquo;&#23454;&#20307;&#20063;&#21487;&#20197;&#30001;&#19968;&#20010;&ldquo;&#23458;&#25143;&rdquo;&#23454;&#20307;&#36127;&#36131;&#12290;<\/p>\n<h3>&#23545;&#35937;&#20851;&#31995;&#26144;&#23556;&#65288;ORM&#65289;<\/h3>\n<p>&#20026;&#20102;&#23454;&#29616;&#36825;&#31181;&#20851;&#32852;&#65292;&#25105;&#20204;&#21487;&#20197;&#20351;&#29992;&#23545;&#35937;&#20851;&#31995;&#26144;&#23556;&#65288;ORM&#65289;&#12290;ORM &#26159;&#19968;&#31181;&#25216;&#26415;&#65292;&#29992;&#20110;&#23558;&#32534;&#31243;&#35821;&#35328;&#20013;&#30340;&#25968;&#25454;&#27169;&#22411;&#36716;&#25442;&#20026;&#25968;&#25454;&#24211;&#26597;&#35810;&#65292;&#20174;&#32780;&#31616;&#21270;&#25968;&#25454;&#24211;&#25805;&#20316;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#20351;&#29992; Python &#30340; ORM &#23454;&#29616;&#30340;&#31034;&#20363;&#65306;<\/p>\n<pre><code class=\"language-python\">from sqlalchemy import Column, Integer, String, ForeignKey\nfrom sqlalchemy.orm import relationship\nfrom sqlalchemy.ext.declarative import declarative_base\n\n# &#23450;&#20041;&#22522;&#30784;&#31867;\nBase = declarative_base()\n\nclass Customer(Base):\n    __tablename__ = 'customers'\n\n    id = Column(Integer, primary_key=True)\n    name = Column(String(50))\n    orders = relationship(\"Order\", backref=\"customer\")\n\nclass Order(Base):\n    __tablename__ = 'orders'\n\n    id = Column(Integer, primary_key=True)\n    customer_id = Column(Integer, ForeignKey('customers.id'))\n    customer = relationship(\"Customer\", back_populates=\"orders\")<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;<code>Customer<\/code> &#31867;&#26377; <code>name<\/code> &#23646;&#24615;&#65292;&#24182;&#19988;&#36890;&#36807; <code>relationship<\/code> &#26041;&#27861;&#20851;&#32852;&#21040; <code>Order<\/code> &#31867;&#30340;&#19968;&#20010;&#23646;&#24615; <code>customer<\/code>&#12290;&#21516;&#26102;&#65292;<code>Order<\/code> &#31867;&#20063;&#26377;&#19968;&#20010;&#23646;&#24615; <code>customer<\/code>&#65292;&#20854;&#20540;&#26159; <code>Customer<\/code> &#31867;&#30340;&#19968;&#20010;&#23454;&#20363;&#65292;&#36825;&#20351;&#24471;&#19968;&#20010; <code>Order<\/code> &#21487;&#20197;&#24402;&#23646;&#20110;&#22810;&#20010; <code>Customer<\/code>&#12290;<\/p>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#20197;&#19979;&#26159;&#19968;&#27573;&#31616;&#21333;&#30340; SQL &#26597;&#35810;&#31034;&#20363;&#65292;&#23637;&#31034;&#22914;&#20309;&#26681;&#25454;&#19968;&#23545;&#22810;&#20851;&#32852;&#26816;&#32034;&#29305;&#23450;&#23458;&#25143;&#30340;&#35746;&#21333;&#21015;&#34920;&#65306;<\/p>\n<pre><code class=\"language-sql\">SELECT c.name, o.date, o.amount FROM customers AS c JOIN orders AS o ON c.id = o.customer_id WHERE c.name = 'John Doe';<\/code><\/pre>\n<p>&#36825;&#27573;&#26597;&#35810;&#39318;&#20808;&#20174; <code>customers<\/code> &#34920;&#26684;&#20013;&#36873;&#25321; <code>name<\/code>, <code>date<\/code>, &#21644; <code>amount<\/code> &#23383;&#27573;&#65292;&#28982;&#21518;&#26681;&#25454;&#25351;&#23450;&#30340; <code>name<\/code> &#25628;&#32034;&#32467;&#26524;&#12290;&#26368;&#21518;&#65292;&#23427;&#21482;&#36820;&#22238;&#37027;&#20123;&#19982;&#21517;&#20026; <code>'John Doe'<\/code> &#30340;&#23458;&#25143;&#20851;&#32852;&#30340;&#25152;&#26377;&#35746;&#21333;&#20449;&#24687;&#12290;<\/p>\n<p>&#35831;&#27880;&#24847;&#65292;&#36825;&#20010;&#31034;&#20363;&#20165;&#20316;&#20026;&#35299;&#37322;&#19968;&#23545;&#22810;&#20851;&#31995;&#30340;&#19968;&#31181;&#26041;&#24335;&#12290;&#23454;&#38469;&#24212;&#29992;&#20013;&#65292;&#24744;&#38656;&#35201;&#26681;&#25454;&#20855;&#20307;&#38656;&#27714;&#35843;&#25972;&#23454;&#20307;&#31867;&#21644;&#30456;&#24212;&#30340;&#20851;&#32852;&#35774;&#32622;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#20248;&#38597;&#22320;&#35774;&#35745;&#20855;&#26377;&#19968;&#23545;&#19968;&#20851;&#32852;&#30340;&#25968;&#25454;&#34920;&#038;#26..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-981","my1js","type-my1js","status-publish","hentry","my1js2nav-laravel"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/981","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=981"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=981"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=981"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=981"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}