{"id":1021,"date":"2025-06-12T05:03:18","date_gmt":"2025-06-11T21:03:18","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/1021.html"},"modified":"2025-06-12T05:03:18","modified_gmt":"2025-06-11T21:03:18","slug":"laravel-eloquent%ef%bc%9a%e5%a2%9e%e5%88%a0%e6%94%b9%e6%9f%a5%e7%a4%ba%e4%be%8b","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/1021.html","title":{"rendered":"Laravel Eloquent\uff1a\u589e\u5220\u6539\u67e5\u793a\u4f8b"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>Laravel &#26159;&#19968;&#20010;&#38750;&#24120;&#27969;&#34892;&#30340; PHP &#26694;&#26550;&#65292;&#23427;&#25552;&#20379;&#20102;&#24378;&#22823;&#30340; ORM&#65288;&#23545;&#35937;&#20851;&#31995;&#26144;&#23556;&#65289;&#24037;&#20855;&#65292;&#20351;&#24471;&#25968;&#25454;&#24211;&#25805;&#20316;&#21464;&#24471;&#24322;&#24120;&#31616;&#21333;&#12290;&#19979;&#38754;&#26159;&#19968;&#20010;&#20351;&#29992; Laravel Eloquent &#36827;&#34892;&#22686;&#21024;&#25913;&#26597;&#30340;&#31034;&#20363;&#12290;<\/p>\n<h3>1. &#23433;&#35013; Laravel<\/h3>\n<p>&#39318;&#20808;&#65292;&#30830;&#20445;&#20320;&#24050;&#32463;&#23433;&#35013;&#20102; Composer&#12290;&#28982;&#21518;&#65292;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340; Laravel &#39033;&#30446;&#65306;<\/p>\n<pre><code class=\"language-bash\">composer create-project --prefer-dist laravel\/laravel my-laravel-app\ncd my-laravel-app<\/code><\/pre>\n<h3>2. &#37197;&#32622;&#25968;&#25454;&#24211;&#36830;&#25509;<\/h3>\n<p>&#22312; <code>.env<\/code> &#25991;&#20214;&#20013;&#37197;&#32622;&#20320;&#30340;&#25968;&#25454;&#24211;&#36830;&#25509;&#20449;&#24687;&#65306;<\/p>\n<pre><code class=\"language-env\">DB_CONNECTION=mysql\nDB_HOST=127.0.0.1\nDB_PORT=3306\nDB_DATABASE=my_laravel_app\nDB_USERNAME=root\nDB_PASSWORD=<\/code><\/pre>\n<h3>3. &#21019;&#24314;&#27169;&#22411;&#21644;&#36801;&#31227;<\/h3>\n<p>&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#21517;&#20026; <code>User<\/code> &#30340;&#27169;&#22411;&#65292;&#24182;&#19988;&#38656;&#35201;&#36827;&#34892;&#22686;&#21024;&#25913;&#26597;&#25805;&#20316;&#12290;&#39318;&#20808;&#65292;&#29983;&#25104;&#27169;&#22411;&#65306;<\/p>\n<pre><code class=\"language-bash\">php artisan make:model User<\/code><\/pre>\n<p>&#25509;&#19979;&#26469;&#65292;&#29983;&#25104;&#23545;&#24212;&#30340;&#36801;&#31227;&#25991;&#20214;&#65306;<\/p>\n<pre><code class=\"language-bash\">php artisan make:migration create_users_table<\/code><\/pre>\n<p>&#32534;&#36753;&#29983;&#25104;&#30340;&#36801;&#31227;&#25991;&#20214;&#65292;&#28155;&#21152;&#19968;&#20123;&#23383;&#27573;&#65306;<\/p>\n<pre><code class=\"language-php\">use IlluminateDatabaseMigrationsMigration;\nuse IlluminateDatabaseSchemaBlueprint;\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;id();\n            $table-&gt;string('name');\n            $table-&gt;string('email')-&gt;unique();\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}<\/code><\/pre>\n<p>&#36816;&#34892;&#36801;&#31227;&#21629;&#20196;&#26469;&#21019;&#24314;&#34920;&#65306;<\/p>\n<pre><code class=\"language-bash\">php artisan migrate<\/code><\/pre>\n<h3>4. &#21019;&#24314;&#25511;&#21046;&#22120;<\/h3>\n<p>&#29983;&#25104;&#19968;&#20010; UserController &#26469;&#22788;&#29702;&#29992;&#25143;&#30340; CRUD &#25805;&#20316;&#65306;<\/p>\n<pre><code class=\"language-bash\">php artisan make:controller UserController<\/code><\/pre>\n<p>&#32534;&#36753;&#29983;&#25104;&#30340; UserController &#25991;&#20214;&#65292;&#28155;&#21152;&#19968;&#20123;&#22522;&#26412;&#30340;&#36335;&#30001;&#21644;&#26041;&#27861;&#65306;<\/p>\n<pre><code class=\"language-php\">namespace AppHttpControllers;\n\nuse AppModelsUser;\nuse IlluminateHttpRequest;\n\nclass UserController extends Controller\n{\n    \/**\n     * Display a listing of users.\n     *\n     * @return IlluminateHttpResponse\n     *\/\n    public function index()\n    {\n        $users = User::all();\n        return view('users.index', ['users' =&gt; $users]);\n    }\n\n    \/**\n     * Show the form for creating a new resource.\n     *\n     * @return IlluminateHttpResponse\n     *\/\n    public function create()\n    {\n        return view('users.create');\n    }\n\n    \/**\n     * Store a newly created resource in storage.\n     *\n     * @param IlluminateHttpRequest $request\n     * @return IlluminateHttpResponse\n     *\/\n    public function store(Request $request)\n    {\n        $user = User::create($request-&gt;all());\n        return redirect()-&gt;route('users.index')-&gt;with('success', 'User created successfully.');\n    }\n\n    \/**\n     * Display the specified resource.\n     *\n     * @param int $id\n     * @return IlluminateHttpResponse\n     *\/\n    public function show($id)\n    {\n        $user = User::find($id);\n        return view('users.show', ['user' =&gt; $user]);\n    }\n\n    \/**\n     * Show the form for editing the specified resource.\n     *\n     * @param int $id\n     * @return IlluminateHttpResponse\n     *\/\n    public function edit($id)\n    {\n        $user = User::find($id);\n        return view('users.edit', ['user' =&gt; $user]);\n    }\n\n    \/**\n     * Update the specified resource in storage.\n     *\n     * @param IlluminateHttpRequest $request\n     * @param int $id\n     * @return IlluminateHttpResponse\n     *\/\n    public function update(Request $request, $id)\n    {\n        $user = User::find($id);\n        $user-&gt;update($request-&gt;all());\n        return redirect()-&gt;route('users.index')-&gt;with('success', 'User updated successfully.');\n    }\n\n    \/**\n     * Remove the specified resource from storage.\n     *\n     * @param int $id\n     * @return IlluminateHttpResponse\n     *\/\n    public function destroy($id)\n    {\n        $user = User::find($id);\n        $user-&gt;delete();\n        return redirect()-&gt;route('users.index')-&gt;with('success', 'User deleted successfully.');\n    }\n}<\/code><\/pre>\n<h3>5. &#21019;&#24314;&#35270;&#22270;<\/h3>\n<p>&#21019;&#24314;&#30456;&#24212;&#30340;&#35270;&#22270;&#25991;&#20214;&#65292;&#20363;&#22914; <code>resources\/views\/users\/index.blade.php<\/code>&#12289;<code>resources\/views\/users\/create.blade.php<\/code>&#12289;<code>resources\/views\/users\/edit.blade.php<\/code> &#31561;&#12290;<\/p>\n<h4>index.blade.php<\/h4>\n<pre><code class=\"language-html\">@extends('layouts.app')\n\n@section('content')\n&lt;h1&gt;Users&lt;\/h1&gt;\n&lt;table&gt;\n    &lt;thead&gt;\n        &lt;tr&gt;\n            &lt;th&gt;ID&lt;\/th&gt;\n            &lt;th&gt;Name&lt;\/th&gt;\n            &lt;th&gt;Email&lt;\/th&gt;\n            &lt;th&gt;Action&lt;\/th&gt;\n        &lt;\/tr&gt;\n    &lt;\/thead&gt;\n    &lt;tbody&gt;\n        @foreach ($users as $user)\n            &lt;tr&gt;\n                &lt;td&gt;{{ $user-&gt;id }}&lt;\/td&gt;\n                &lt;td&gt;{{ $user-&gt;name }}&lt;\/td&gt;\n                &lt;td&gt;{{ $user-&gt;email }}&lt;\/td&gt;\n                &lt;td&gt;\n                    &lt;a href=\"{{ route('users.show', $user-&gt;id) }}\"&gt;Show&lt;\/a&gt; |\n                    &lt;a href=\"{{ route('users.edit', $user-&gt;id) }}\"&gt;Edit&lt;\/a&gt; |\n                    &lt;form action=\"{{ route('users.destroy', $user-&gt;id) }}\" method=\"POST\"&gt;\n                        @csrf\n                        @method('DELETE')\n                        &lt;button type=\"submit\"&gt;Delete&lt;\/button&gt;\n                    &lt;\/form&gt;\n                &lt;\/td&gt;\n            &lt;\/tr&gt;\n        @endforeach\n    &lt;\/tbody&gt;\n&lt;\/table&gt;\n&lt;a href=\"{{ route('users.create') }}\"&gt;Create New User&lt;\/a&gt;\n@endsection<\/code><\/pre>\n<h4>create.blade.php<\/h4>\n<pre><code class=\"language-html\">@extends('layouts.app')\n\n@section('content')\n&lt;h1&gt;Create User&lt;\/h1&gt;\n&lt;form action=\"{{ route('users.store') }}\" method=\"POST\"&gt;\n    @csrf\n    &lt;div class=\"form-group\"&gt;\n        &lt;label for=\"name\"&gt;Name&lt;\/label&gt;\n        &lt;input type=\"text\" id=\"name\" name=\"name\" required&gt;\n    &lt;\/div&gt;\n    &lt;div class=\"form-group\"&gt;\n        &lt;label for=\"email\"&gt;Email&lt;\/label&gt;\n        &lt;input type=\"email\" id=\"email\" name=\"email\" required&gt;\n    &lt;\/div&gt;\n    &lt;button type=\"submit\"&gt;Create User&lt;\/button&gt;\n&lt;\/form&gt;\n@endsection<\/code><\/pre>\n<h4>edit.blade.php<\/h4>\n<pre><code class=\"language-html\">@extends('layouts.app')\n\n@section('content')\n&lt;h1&gt;Edit User&lt;\/h1&gt;\n&lt;form action=\"{{ route('users.update', $user-&gt;id) }}\" method=\"POST\"&gt;\n    @csrf\n    @method('PUT')\n    &lt;div class=\"form-group\"&gt;\n        &lt;label for=\"name\"&gt;Name&lt;\/label&gt;\n        &lt;input type=\"text\" id=\"name\" name=\"name\" value=\"{{ $user-&gt;name }}\"&gt;\n    &lt;\/div&gt;\n    &lt;div class=\"form-group\"&gt;\n        &lt;label for=\"email\"&gt;Email&lt;\/label&gt;\n        &lt;input type=\"email\" id=\"email\" name=\"email\" value=\"{{ $user-&gt;email }}\"&gt;\n    &lt;\/div&gt;\n    &lt;button type=\"submit\"&gt;Update User&lt;\/button&gt;\n&lt;\/form&gt;\n@endsection<\/code><\/pre>\n<h3>6. &#27979;&#35797;<\/h3>\n<p>&#29616;&#22312;&#20320;&#21487;&#20197;&#36890;&#36807;&#27983;&#35272;&#22120;&#35775;&#38382; <code>http:\/\/localhost:8000\/users<\/code> &#26469;&#27979;&#35797;&#29992;&#25143;&#31649;&#29702;&#21151;&#33021;&#12290;&#20320;&#21487;&#20197;&#21019;&#24314;&#12289;&#26597;&#30475;&#12289;&#32534;&#36753;&#21644;&#21024;&#38500;&#29992;&#25143;&#12290;<\/p>\n<p>&#24076;&#26395;&#36825;&#20010;&#31034;&#20363;&#33021;&#24110;&#21161;&#20320;&#29702;&#35299;&#22914;&#20309;&#22312; Laravel &#20013;&#20351;&#29992; Eloquent &#36827;&#34892;&#22686;&#21024;&#25913;&#26597;&#25805;&#20316;&#12290;&#22914;&#26524;&#20320;&#26377;&#20219;&#20309;&#38382;&#39064;&#65292;&#35831;&#38543;&#26102;&#25552;&#38382;&#65281;<\/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>&#27426;&#36814;&#21442;&#21152;&#26412;Laravel Eloquent CRUD&#31034;&#20363;&#25945;&#31243;&#12290;&#22312;&#26412;&#25351;&#21335;&#20013;&#65292;&#25105;&#20204;&#23558;&#28145;&#20837;&#25506;&#35752;&#22914;&#20309;&#20351;&#29992;Eloquent&#65292;Laravel&#30340;&#20869;&#32622;ORM&#65288;&#23545;&#35937;&#20851;&#31995;&#26144;&#23556;&#22120;&#65289;&#65292;&#36890;&#36807;&#23500;&#25991;&#26412;&#21644;&#31616;&#27905;&#30340;&#35821;&#27861;&#19982;&#25968;&#25454;&#24211;&#20132;&#20114;&#12290;&#25105;&#20204;&#23558;&#28085;&#30422;CRUD&#25805;&#20316;&#30340;&#22522;&#26412;&#21151;&#33021;&#65292;&#36890;&#36807;&#23454;&#38469;&#20363;&#23376;&#36827;&#34892;&#35828;&#26126;&#12290;<\/p><p>&#20551;&#35774;&#24744;&#23545;Laravel&#26377;&#22522;&#26412;&#30340;&#29702;&#35299;&#24182;&#19988;&#24050;&#32463;&#22312;&#31995;&#32479;&#19978;&#23433;&#35013;&#20102;&#23427;&#65292;&#35753;&#25105;&#20204;&#24320;&#22987;&#35774;&#32622;&#26032;&#39033;&#30446;&#25110;&#23548;&#33322;&#21040;&#29616;&#26377;&#39033;&#30446;&#30340;&#30446;&#24405;&#12290;<\/p><h2>&#35774;&#32622;&#29615;&#22659;<\/h2><pre><code>$ composer create-project --prefer-dist laravel\/laravel laravel-crud\n$ cd laravel-crud\n<\/code><\/pre><p>&#35831;&#30830;&#20445;&#24744;&#30340;&#25968;&#25454;&#24211;&#35774;&#32622;&#27491;&#30830;&#12290;<code>.env<\/code>&#25991;&#20214;&#12290;<\/p><h2>&#21019;&#24314;&#19968;&#20010;&#27169;&#22411;<\/h2><p>&#39318;&#20808;&#65292;&#25105;&#20204;&#38656;&#35201;&#19968;&#20010;&#27169;&#22411;&#26469;&#36827;&#34892;&#24037;&#20316;&#65306;<\/p><pre><code>$ php artisan make:model Post -m\n<\/code><\/pre><p>models.py. The -m flag also generates a database migration for our Post model. Let&#8217;s define some fields in the migration file located at models.py.<code>database\/migrations<\/code>: &#22909;&#30340;&#65292;&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<\/p><pre><code>public function up()\n{\n    Schema::create('posts', function (Blueprint $table) {\n        $table-&gt;id();\n        $table-&gt;string('title');\n        $table-&gt;text('content');\n        $table-&gt;timestamps();\n    });\n}\n<\/code><\/pre><h2>&#36801;&#31227;&#25968;&#25454;&#24211;<\/h2><p>&#22312;&#23450;&#20041;&#23383;&#27573;&#21518;&#65292;&#36816;&#34892;&#36801;&#31227;&#65306;<\/p><pre><code>$ php artisan migrate\n<\/code><\/pre><h2>&#21019;&#24314;&#65288;&#23384;&#20648;&#25968;&#25454;&#65289;<\/h2><p>&#35201;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#24086;&#23376;&#65306;<\/p><pre><code>$post = new Post();\n$post-&gt;title = 'Example Post Title';\n$post-&gt;content = 'This is the content of the post.';\n$post-&gt;save();\n<\/code><\/pre><p>&#20320;&#21487;&#20197;&#36890;&#36807;&#22312;&#23450;&#20041;&#21487;&#22635;&#20805;&#23646;&#24615;&#20043;&#21518;&#35843;&#29992;&#21019;&#24314;&#26041;&#27861;&#26469;&#20351;&#29992;&#23427;&#65306;<\/p><pre><code>protected $fillable = ['title', 'content'];\n\n\/\/ ...later\n\nPost::create([\n    'title' =&gt; 'Example Post Title',\n    'content' =&gt; 'Content of the post.'\n]);\n<\/code><\/pre><h2>&#35835;&#21462;&#65288;&#26816;&#32034;&#25968;&#25454;&#65289;<\/h2><p>&#35201;&#26816;&#32034;&#24086;&#23376;&#65292;&#35831;&#26597;&#30475;&#30456;&#20851;&#36873;&#39033;&#25110;&#32852;&#31995;&#31649;&#29702;&#21592;&#33719;&#21462;&#24110;&#21161;&#12290;<\/p><pre><code>$posts = Post::all();\n<\/code><\/pre><p>&#35201;&#33719;&#21462;&#21333;&#20010;&#24086;&#23376;&#30340;ID&#65306;<\/p><pre><code>$post = Post::find(1);\n<\/code><\/pre><p>&#20197;&#26465;&#20214;&#20026;&#21069;&#25552;&#65306;<\/p><pre><code>$post = Post::where('title', 'Example Post Title')-&gt;first();\n<\/code><\/pre><h2>&#26356;&#26032;&#65288;&#20462;&#25913;&#25968;&#25454;&#65289;<\/h2><p>&#35201;&#26356;&#26032;&#19968;&#26465;&#24086;&#23376;&#65292;&#35831;&#21578;&#35785;&#25105;&#24744;&#24819;&#20462;&#25913;&#30340;&#20869;&#23481;&#20197;&#21450;&#24819;&#35201;&#21457;&#24067;&#30340;&#26032;&#20449;&#24687;&#12290;<\/p><pre><code>$post = Post::find(1);\n$post-&gt;title = 'Updated Title';\n$post-&gt;content = 'Updated content of the post.';\n$post-&gt;save();\n<\/code><\/pre><h2>&#21024;&#38500;&#65288;&#28165;&#38500;&#25968;&#25454;&#65289;<\/h2><p>&#35201;&#21024;&#38500;&#19968;&#26465;&#24086;&#23376;&#65292;&#35831;&#21442;&#38405;&#20197;&#19979;&#27493;&#39588;&#65306;<\/p><pre><code>$post = Post::find(1);\n$post-&gt;delete();\n<\/code><\/pre><p>&#23545;&#20110;&#25209;&#37327;&#21024;&#38500;&#65306;<\/p><pre><code>Post::destroy([1,2,3]);\n<\/code><\/pre><h2>&#20351;&#29992;&#36164;&#28304;&#25511;&#21046;&#22120;&#36827;&#34892;CRUD&#25805;&#20316;<\/h2><p>&#21487;&#20197;&#36890;&#36807;&#29983;&#25104;&#36164;&#28304;&#25511;&#21046;&#22120;&#26469;&#31616;&#21270;&#36825;&#20010;&#36807;&#31243;&#65306;<\/p><pre><code>$ php artisan make:controller PostController --resource\n<\/code><\/pre><p>&#36825;&#20250;&#29983;&#25104;&#19968;&#20010;&#39044;&#22635;&#20805;&#30340;&#25511;&#21046;&#22120;&#65292;&#20854;&#20013;&#21253;&#21547;&#26144;&#23556;&#21040;&#22522;&#26412;CRUD&#25805;&#20316;&#30340;&#26041;&#27861;&#12290;&#28982;&#21518;&#20320;&#21487;&#20197;&#22312;&#27492;&#26041;&#27861;&#20869;&#37096;&#23450;&#20041;&#36923;&#36753;&#65292;&#24182;&#21019;&#24314;&#36335;&#30001;&#26469;&#22788;&#29702;&#27599;&#20010;&#21160;&#20316;&#65306;<\/p><pre><code>Route::resource('posts', 'PostController');\n<\/code><\/pre><p>&#22312;PostController&#20869;&#37096;&#65292;&#20320;&#38656;&#35201;&#23454;&#29616;&#19968;&#20123;&#26041;&#27861;&#12290;<code>index()<\/code>&#22909;&#30340;&#65292;&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<code>create()<\/code>&#22909;&#30340;&#65292;&#35831;&#21457;&#36865;&#20320;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<code>store()<\/code>&#22909;&#30340;&#65292;&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<code>show()<\/code>&#22909;&#30340;&#65292;&#35831;&#21457;&#36865;&#20320;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<code>edit()<\/code>&#22909;&#30340;&#65292;&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<code>update()<\/code>&#21644;&#20320;&#26377;&#20160;&#20040;&#20107;&#21527;&#65311;<code>destroy()<\/code>&#22909;&#30340;&#65292;&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<\/p><h2>&#26368;&#20339;&#23454;&#36341;&#21644;&#20248;&#38597;&#30340;&#20851;&#31995;&#27169;&#24335;<\/h2><p>Eloquent also provides clean methods for defining relationships like<code>hasOne<\/code>&#22909;&#30340;&#65292;&#35831;&#21457;&#36865;&#20320;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<code>belongsTo<\/code>&#22909;&#30340;&#65292;&#35831;&#21457;&#36865;&#20320;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<code>hasMany<\/code>&#21644;&#25105;&#26377;&#20160;&#20040;&#20107;&#21527;&#65311;<code>belongsToMany<\/code>&#24314;&#31435;&#36866;&#24403;&#30340;&#20851;&#31995;&#21487;&#20197;&#20419;&#36827;&#19982;&#25968;&#25454;&#26356;&#30452;&#35266;&#21644;&#31616;&#27905;&#30340;&#20132;&#20114;&#12290;<\/p><p>&#35831;&#21442;&#38405;&#65306;<\/p><p>&#22312;Laravel Eloquent&#20013;&#20351;&#29992;INNER JOIN&#30340;&#35821;&#27861;&#22914;&#19979;&#65306;\n$users = User::join(&#8216;orders&#8217;, &#8216;users.id&#8217;, &#8216;=&#8217;, &#8216;orders.user_id&#8217;)\n -&gt;select(&#8216;users.*&#8217;)\n -&gt;get();\n&#36825;&#27573;&#20195;&#30721;&#20250;&#20174;&#25968;&#25454;&#24211;&#34920;users&#21644;orders&#20013;&#33719;&#21462;&#20851;&#32852;&#65292;&#21482;&#36820;&#22238;&#37027;&#20123;&#22312;&#20004;&#20010;&#34920;&#20013;&#37117;&#23384;&#22312;&#30340;&#29992;&#25143;&#35760;&#24405;&#12290;<\/p><p>&#22312;Laravel&#30340;Eloquent&#27169;&#22411;&#20013;&#20351;&#29992;LEFT JOIN&#21487;&#20197;&#36890;&#36807;&#20197;&#19979;&#26041;&#24335;&#23454;&#29616;&#65306;\n$users = User::leftJoin(&#8216;orders&#8217;, &#8216;users.id&#8217;, &#8216;=&#8217;, &#8216;orders.user_id&#8217;)-&gt;get();\n&#36825;&#20010;&#26597;&#35810;&#20250;&#36820;&#22238;&#25152;&#26377;&#29992;&#25143;&#21450;&#20854;&#20851;&#32852;&#30340;&#35746;&#21333;&#65292;&#21363;&#20351;&#26576;&#20123;&#29992;&#25143;&#27809;&#26377;&#23545;&#24212;&#30340;&#35746;&#21333;&#12290;&#22914;&#26524;&#38656;&#35201;&#21482;&#36820;&#22238;&#26377;&#35746;&#21333;&#30340;&#29992;&#25143;&#65292;&#21487;&#20197;&#28155;&#21152;&#26465;&#20214;&#65306;\n$usersWithOrders = User::leftJoin(&#8216;orders&#8217;, &#8216;users.id&#8217;, &#8216;=&#8217;, &#8216;orders.user_id&#8217;)\n -&gt;whereHas(&#8216;orders&#8217;, function ($query) {\n $query-&gt;whereNotNull(&#8216;id&#8217;);\n })\n -&gt;get();\n&#36825;&#26679;&#21482;&#20250;&#36820;&#22238;&#37027;&#20123;&#33267;&#23569;&#26377;&#19968;&#20010;&#35746;&#21333;&#30340;&#29992;&#25143;&#12290;<\/p><p>&#22312;Laravel Eloquent&#20013;&#20351;&#29992;RIGHT JOIN&#30340;&#24773;&#20917;&#22914;&#19979;&#65306;\n\n&#26597;&#35810;&#22810;&#20010;&#34920;&#30340;&#25968;&#25454;&#65306;&#24403;&#38656;&#35201;&#20174;&#19968;&#20010;&#25110;&#22810;&#20010;&#34920;&#20013;&#33719;&#21462;&#25968;&#25454;&#26102;&#65292;&#21487;&#20197;&#20351;&#29992;LEFT JOIN&#25110;RIGHT JOIN&#12290;\n\n&#26465;&#20214;&#26597;&#35810;&#65306;&#22914;&#26524;&#35201;&#26681;&#25454;&#26576;&#20010;&#23383;&#27573;&#36827;&#34892;&#36807;&#28388;&#65292;&#21017;&#21487;&#20197;&#20351;&#29992;WHERE&#23376;&#21477;&#26469;&#23454;&#29616;&#12290;\n\n&#25490;&#24207;&#21644;&#20998;&#39029;&#65306;&#21487;&#20197;&#23545;&#26597;&#35810;&#32467;&#26524;&#36827;&#34892;&#25490;&#24207;&#21644;&#20998;&#39029;&#25805;&#20316;&#12290;\n\n&#36820;&#22238;&#20851;&#32852;&#35760;&#24405;&#65306;&#21487;&#20197;&#36890;&#36807;with()&#26041;&#27861;&#35774;&#32622;&#20851;&#32852;&#20851;&#31995;&#24182;&#36820;&#22238;&#20851;&#32852;&#35760;&#24405;&#12290;\n\n&#33258;&#36830;&#25509;&#65306;&#36890;&#36807;&#22312;&#20027;&#34920;&#21644;&#23376;&#34920;&#20043;&#38388;&#28155;&#21152;JOIN&#20851;&#38190;&#23383;&#65292;&#21487;&#20197;&#23454;&#29616;&#33258;&#36830;&#25509;&#25805;&#20316;&#12290;\n\n&#22797;&#21512;&#26597;&#35810;&#65306;&#21487;&#20197;&#32467;&#21512;&#22810;&#31181;&#26465;&#20214;&#21644;&#23376;&#26597;&#35810;&#26469;&#36827;&#34892;&#22797;&#26434;&#30340;&#26597;&#35810;&#12290;\n\n&#20197;&#19979;&#26159;&#19968;&#20123;&#22522;&#26412;&#30340;&#29992;&#27861;&#31034;&#20363;&#65306;\n\/\/ &#20174;users&#34920;&#21644;posts&#34920;&#20013;&#33719;&#21462;&#29992;&#25143;&#30340;&#20449;&#24687;&#20197;&#21450;&#20182;&#20204;&#21457;&#24067;&#30340;&#25152;&#26377;&#24086;&#23376;\n$users = User::join(&#8216;posts&#8217;, &#8216;users.id&#8217;, &#8216;=&#8217;, &#8216;posts.user_id&#8217;)\n -&gt;select(&#8216;users.*&#8217;, &#8216;posts.title as post_title&#8217;) \/\/ &#21487;&#20197;&#36873;&#25321;&#29305;&#23450;&#30340;&#21015;\n -&gt;get();\n\nforeach ($users as $user) {\n echo &#8220;User ID: {$user-&gt;id}, Username: {$user-&gt;username}, Posts: &#8220;;\n foreach ($user-&gt;post_title as $title) {\n echo &#8220;{$title}, &#8220;;\n }\n echo &#8220;n&#8221;;\n}\n&#24076;&#26395;&#36825;&#20123;&#20449;&#24687;&#23545;&#20320;&#26377;&#24110;&#21161;&#65281;&#22914;&#26524;&#20320;&#26377;&#20219;&#20309;&#20855;&#20307;&#38382;&#39064;&#65292;&#35831;&#38543;&#26102;&#25552;&#38382;&#12290;<\/p><p>&#22312;Eloquent ORM&#65288;&#23545;&#35937;&#20851;&#31995;&#26144;&#23556;&#65289;&#20013;&#20351;&#29992;&#22810;&#23545;&#22810;&#20851;&#31995;&#65288;many-to-many relationships&#65289;&#30340;&#31034;&#20363;&#12290;<\/p><p>&#22312;Eloquent&#26694;&#26550;&#20013;&#22788;&#29702;&#19968;&#23545;&#19968;&#21644;&#22810;&#23545;&#19968;&#20851;&#31995;&#65288;&#31034;&#20363;&#65289;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>&#21040;&#30446;&#21069;&#20026;&#27490;&#65292;&#20320;&#24212;&#35813;&#24050;&#32463;&#23545;&#20351;&#29992;Laravel Eloquent&#36827;&#34892;&#22522;&#26412;&#30340;CRUD&#25805;&#20316;&#26377;&#20102;&#24456;&#22909;&#30340;&#29702;&#35299;&#12290;&#34429;&#28982;&#36825;&#21482;&#26159;&#24320;&#22987;&#65292;&#20294;Laravel&#21644;Eloquent&#25552;&#20379;&#20102;&#20016;&#23500;&#30340;&#21151;&#33021;&#65292;&#24110;&#21161;&#20320;&#20248;&#38597;&#22320;&#19982;&#25968;&#25454;&#24211;&#20132;&#20114;&#65292;&#25552;&#39640;&#24212;&#29992;&#30340;&#29983;&#20135;&#21147;&#21644;&#21487;&#32500;&#25252;&#24615;&#12290;&#32487;&#32493;&#23454;&#39564;&#65292;&#24182;&#35760;&#20303;&#22312;&#38656;&#35201;&#26356;&#22797;&#26434;&#35299;&#20915;&#26041;&#26696;&#25110;&#39069;&#22806;&#24110;&#21161;&#26102;&#65292;&#35831;&#21442;&#38405;Laravel&#25991;&#26723;&#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>Eloquent &#26159; Laravel &#30340; ORM&#65288;&#23545;&#35937;&#20851;&#31995;&#26144;&#23556;&#65289;&#24211;&#65292;&#23427;&#25552;&#20379;&#20102;&#23545;&#25968;&#25454;&#24211;&#30340;&#20415;&#25463;&#25805;&#20316;&#12290;&#19979;&#38754;&#25105;&#20204;&#23558;&#36890;&#36807;&#20960;&#20010;&#20363;&#23376;&#26469;&#23637;&#31034;&#22914;&#20309;&#20351;&#29992; Eloquent &#23454;&#29616;&#22686;&#21024;&#25913;&#26597;&#30340;&#25805;&#20316;&#12290;<\/p>\n<h3>&#22686;<\/h3>\n<p>&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#27169;&#22411;&#21517;&#20026; <code>User<\/code>&#65292;&#20854;&#20013;&#21253;&#21547;&#20197;&#19979;&#23383;&#27573;&#65306;<\/p>\n<pre><code class=\"language-php\">public $timestamps = true;\nprotected $fillable = ['name', 'email'];<\/code><\/pre>\n<p>&#35201;&#28155;&#21152;&#19968;&#20010;&#26032;&#30340;&#29992;&#25143;&#65292;&#21487;&#20197;&#36825;&#26679;&#20570;&#65306;<\/p>\n<pre><code class=\"language-php\">$user = new User([\n    'name' =&gt; 'John Doe',\n    'email' =&gt; 'johndoe@example.com'\n]);\n\n$user-&gt;save();<\/code><\/pre>\n<p>&#36825;&#23558;&#21019;&#24314;&#19968;&#20010;&#26032;&#29992;&#25143;&#24182;&#23558;&#20854;&#23384;&#20648;&#21040;&#25968;&#25454;&#24211;&#20013;&#12290;<\/p>\n<h3>&#21024;<\/h3>\n<p>&#21024;&#38500;&#29992;&#25143;&#21487;&#20197;&#36890;&#36807;&#35843;&#29992;&#29992;&#25143;&#30340; ID &#26469;&#23454;&#29616;&#65306;<\/p>\n<pre><code class=\"language-php\">$userId = 1; \/\/ &#20551;&#35774;&#36825;&#26159;&#19968;&#20010;&#26377;&#25928;&#30340;&#29992;&#25143;ID\n$user = User::find($userId);\nif ($user) {\n    $user-&gt;delete();\n}<\/code><\/pre>\n<p>&#22914;&#26524;&#25214;&#21040;&#29992;&#25143;&#19988;&#20854;&#23384;&#22312;&#65292;&#21017;&#25191;&#34892;&#21024;&#38500;&#25805;&#20316;&#12290;<\/p>\n<h3>&#25913;<\/h3>\n<p>&#26356;&#26032;&#29992;&#25143;&#20449;&#24687;&#65306;<\/p>\n<pre><code class=\"language-php\">$userId = 2; \/\/ &#20551;&#35774;&#36825;&#26159;&#21478;&#19968;&#20010;&#26377;&#25928;&#30340;&#29992;&#25143;ID\n$user = User::find($userId);\n\n\/\/ &#26356;&#26032;&#29992;&#25143;&#20449;&#24687;\n$user-&gt;update(['email' =&gt; 'new.email@example.com']);\n\n\/\/ &#25110;&#32773;&#36890;&#36807;&#39564;&#35777;&#22120;\n$user-&gt;validate(['email' =&gt; 'required|email']);\n$user-&gt;email = 'new.email@example.com';\n$user-&gt;save();<\/code><\/pre>\n<h3>&#26597;<\/h3>\n<p>&#26597;&#35810;&#25152;&#26377;&#29992;&#25143;&#65306;<\/p>\n<pre><code class=\"language-php\">$users = User::all();\n\nforeach ($users as $user) {\n    echo $user-&gt;id . \"n\";\n}\n\n\/\/ &#36825;&#37324;&#20320;&#21487;&#20197;&#26681;&#25454;&#38656;&#35201;&#26597;&#35810;&#20854;&#20182;&#23646;&#24615;\necho $users[0]-&gt;name . \"n\";<\/code><\/pre>\n<p>&#36825;&#20123;&#26159;&#22522;&#26412;&#30340; Eloquent &#25805;&#20316;&#12290;Laravel &#30340;&#25991;&#26723;&#38750;&#24120;&#35814;&#32454;&#65292;&#25552;&#20379;&#20102;&#35768;&#22810;&#26356;&#22797;&#26434;&#30340;&#26597;&#35810;&#21644;&#39564;&#35777;&#26041;&#27861;&#65292;&#20363;&#22914;&#27169;&#31946;&#21305;&#37197;&#12289;&#25490;&#24207;&#31561;&#12290;&#22914;&#26524;&#20320;&#26377;&#20219;&#20309;&#20855;&#20307;&#38382;&#39064;&#65292;&#35831;&#38543;&#26102;&#25552;&#38382;&#65281;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; Laravel &#26159;&#19968;&#20010;&#38750;&#24120;&#27969;&#34892;&#30340; PHP &#26694;&#26550;&#65292;&#23427;&#25552;&#20379;&#038;#20102..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-1021","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\/1021","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=1021"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=1021"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=1021"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=1021"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}