{"id":12147,"date":"2020-05-08T00:00:00","date_gmt":"2020-05-07T16:00:00","guid":{"rendered":"https:\/\/fgchen.com\/wpedu2\/2020\/05\/08\/%e3%80%90%e7%ad%86%e8%a8%98-laravel%e3%80%91laravel-7-crud-%e7%af%84%e4%be%8b\/"},"modified":"2026-03-30T14:41:05","modified_gmt":"2026-03-30T06:41:05","slug":"%e3%80%90%e7%ad%86%e8%a8%98-laravel%e3%80%91laravel-7-crud-%e7%af%84%e4%be%8b","status":"publish","type":"post","link":"https:\/\/fgchen.com\/wpedu\/2020\/05\/%e3%80%90%e7%ad%86%e8%a8%98-laravel%e3%80%91laravel-7-crud-%e7%af%84%e4%be%8b\/","title":{"rendered":"\u3010\u7b46\u8a18-Laravel\u3011Laravel 7 CRUD \u7bc4\u4f8b"},"content":{"rendered":"\u8cc7\u6599\u4f86\u6e90\uff1a<a href=\"https:\/\/appdividend.com\/2020\/03\/13\/laravel-7-crud-example-laravel-7-tutorial-step-by-step\/\" target=\"_blank\" rel=\"noopener noreferrer\">Laravel 7 CRUD Example | Laravel 7 Tutorial Step By Step<\/a>\n\u8aaa\u660e\uff1a\n\u9019\u662fPHP Laravel\u7684\u4e00\u500bCRUD\u7bc4\u4f8b\uff0c\u793a\u7bc4\u5982\u4f55\u4e00\u6b65\u4e00\u6b65\u5efa\u7acb\u4e00\u500bCRUD\u7684\u61c9\u7528\u3002\nPHP Laravel\u662f\u4e00\u500b\u5f8c\u7aef\u7cfb\u7d71\u6846\u67b6\uff0c\u53ef\u4ee5\u8b93\u4e00\u500b\u7a0b\u5f0f\u8a2d\u8a08\u5e2b\u5c08\u6ce8\u65bc\u61c9\u7528\u7a0b\u5f0f\u554f\u984c\u908f\u8f2f(\u89e3\u6c7a\u5546\u7528\/\u5de5\u696d\u554f\u984c)\uff0c\u4e0d\u7528\u82b1\u592a\u591a\u5fc3\u601d\u5728\u6280\u8853\u7d30\u7bc0\u4e0a\uff0c\u4e5f\u5c31\u662f\u8aaa\uff0c\u4e00\u500b\u8cc7\u8a0a\u7cfb\u7684\u5b78\u751f\u53ea\u9700\u8981\u5efa\u7acb\u6280\u8853\u89c0\u5ff5\uff0c\u5728\u4e0d\u9700\u8981\u5be6\u4f5c\u6280\u8853\u7d30\u7bc0\u7684\u72c0\u6cc1\u4e0b\uff0c\u5c31\u80fd\u5efa\u7acb\u4e00\u500b\u9762\u9762\u4ff1\u5230\u7684\u61c9\u7528\u7a0b\u5f0f\u3002\u4e00\u822c\u4f86\u8aaa\uff0c\u4e00\u500b\u8cc7\u8a0a\u7cfb\u7684\u5b78\u751f\u8981\u8981\u80fd\u529b\u5beb\u4e00\u500b\u61c9\u7528\u7cfb\u7d71\u5f80\u5f80\u8981\u5b78\u975e\u5e38\u591a\u7684\u5b78\u79d1\u3001\u6280\u8853\u3001\u89c0\u5ff5\u7b49\uff0c\u624d\u6709\u8fa6\u6cd5\u5efa\u7acb\u4e00\u500b&#8221;\u5b8c\u6574&#8221;\u7684\u61c9\u7528\u7a0b\u5f0f\uff0c\u96e3\u5ea6\u4e4b\u9ad8\uff0c\u9023\u6211\u90fd\u89ba\u5f97\u5beb\u7cfb\u7d71\u662f\u4e00\u500b\u8d85\u7d1a\u6709\u6311\u6230\u7684\u5de5\u4f5c\uff0c\u5e95\u4e0b\u9019\u5f35\u5716\u975e\u5e38\u50b3\u795e\uff0c&#8221;\u5687\u6b7b\u4e00\u5806\u5bf6\u5bf6\u4e86&#8221;\uff0c\u4e0d\u5c11\u5ff5\u4e86\u56db\u5e74\u7684\u8cc7\u8a0a\u7cfb\u5b78\u751f\u4e0d\u60f3\u78b0\u7a0b\u5f0f\u8a2d\u8a08(\u7279\u5225\u662f\u5973\u751f\uff0c\u5927\u90e8\u4efd\u662f\u56e0\u70ba\u793e\u6703\u523b\u677f\u5370\u8c61\u5427\uff0c\u81ea\u89ba\u5973\u751f\u672c\u4f86\u61c9\u8a72\u5f88&#8221;\u4e0d\u7406\u5de5&#8221;\u3002)\u3002\u56e0\u70ba\u8981\u5beb\u4e00\u500b\u597d\u7684\u7cfb\u7d71\u4e0d\u5bb9\u6613\uff0c\u5c0e\u5165\u9069\u7576\u7684\u6846\u67b6\u5230\u5b78\u751f\u7684\u5b78\u7fd2\u662f\u6709\u5fc5\u8981\u7684\uff0c\u4e0d\u8981coding\u5e95\u5c64\u7d30\u7bc0\u4f86\u5efa\u7acb\u4e00\u500b\u5b8c\u6574\u7684\u7cfb\u7d71\uff0c\u53ea\u662f\u8981\u5b78Laravel\u6846\u67b6\uff0c\u57fa\u790e\u4e5f\u662f\u8981\u6709\u7684\uff0cJavaScript\u3001HTML\u3001CSS\u3001PHP\u3001Bootstrap(\u524d\u7aefUI)\u3001SQL\u3001\u8cc7\u6599\u5eab\u6a21\u578b\u3001\u7cfb\u7d71\u5206\u6790\u8207\u8a2d\u8a08\u2026\uff0c\u6709\u597d\u7684\u57fa\u790e\u624d\u80fd\u5728\u6846\u67b6\u5354\u52a9\u4e0b\u5efa\u7acb\u597d\u7684\u61c9\u7528\u7a0b\u5f0f(\u6846\u67b6\u4e0d\u662f\u9280\u5b50\u5f48)\u3002\n<figure style=\"width: 720px\" class=\"wp-caption alignnone\"><img fetchpriority=\"high\" decoding=\"async\" class=\"size-full\" src=\"https:\/\/aprogrammerlife.com\/images\/pictuers\/computer_science_students.jpg\" width=\"720\" height=\"713\" \/><figcaption class=\"wp-caption-text\">\u5716\u7247\u4f86\u6e90 https:\/\/aprogrammerlife.com\/most-viewed\/computer-science-students-1010?fbclid=IwAR1zeYTa61eJSeOA76JVvz6riE9-7ZohZFlVcm3UFt9lXkWbCI0n_Ms0_hg<\/figcaption><\/figure>\n&nbsp;\n\u65b0\u589e\u5c08\u6848\uff1a\n\n<ul>\n    <li><span style=\"font-family: 'arial black', sans-serif\">laravel new crud-example<\/span><\/li>\n<\/ul>\n\n\u6216\u8005\u4f7f\u7528\u4e0b\u5217\u7684\u6307\u4ee4\uff1a\n\n<ul>\n    <li><span style=\"font-family: 'arial black', sans-serif\">composer create-project &#8211;prefer-dist laravel\/laravel crud-example<\/span><\/li>\n<\/ul>\n\n\u57f7\u884c\u5b8c\u7562\u6703\u65b0\u589e\u4e00\u500b\u76ee\u9304<span style=\"font-family: 'arial black', sans-serif\">crud-example\uff0c\u9032\u5165\u8a72\u76ee\u9304\uff0c\u4e26\u4e14\u66f4\u65b0\u524d\u7aef\u7684\u76f8\u4f9d\u8cc7\u6599<\/span>\n\n<ul>\n    <li><span style=\"font-family: 'arial black', sans-serif\">cd crud-example<\/span><\/li>\n    <li><span style=\"font-family: 'arial black', sans-serif\">npm install\u00a0<\/span><\/li>\n<\/ul>\n\n\u7de8\u8f2f.env\u6a94\uff0c\u4fee\u6539\u8cc7\u6599\u5eab\u9023\u63a5\u8cc7\u6599\uff1a\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">DB_CONNECTION=mysql\nDB_HOST=127.0.0.1\nDB_PORT=3306\nDB_DATABASE=wellsche_crud_example\nDB_USERNAME=wellsche_laravel\nDB_PASSWORD=xxxxxxxx<\/pre>\n\n\u9996\u5148\u7de8\u8f2f\/app\/Providers\/AppServiceProvider.php\uff0c\u52a0\u5165\u8868\u6599\u5eabschema\u76f8\u95dc\u7684\u4fee\u6539\uff1a\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"php\">&lt;?php\nnamespace AppProviders;\nuse IlluminateSupportFacadesSchema;\nuse IlluminateSupportServiceProvider;\nclass AppServiceProvider extends ServiceProvider\n{\n    \/**\n     * Register any application services.\n     *\n     * @return void\n     *\/\n    public function register()\n    {\n        \/\/\n    }\n    \/**\n     * Bootstrap any application services.\n     *\n     * @return void\n     *\/\n    public function boot()\n    {\n      Schema::defaultStringLength(191);\n    }\n}\n<\/pre>\n\n\u57f7\u884c\uff1a\n\n<ul>\n    <li><span style=\"font-family: 'arial black', sans-serif\">php artisan migrate<\/span><\/li>\n<\/ul>\n\n\u6240\u9700\u8981\u7684\u8cc7\u6599\u8868\u683cschema\u6703\u5efa\u7acb\u597d\n\u5efa\u7acbmodel\u8207mirgation\u6a94\n\n<ul>\n    <li><span style=\"font-family: 'arial black', sans-serif\">php artisan make:model Corona -m<\/span><\/li>\n<\/ul>\n\n\u4e0a\u9762\u6307\u4ee4\u6703\u7522\u751f2\u500b\u6a94\u6848\uff1a\n\n<ol>\n    <li><span style=\"font-family: 'arial black', sans-serif\">app\u76ee\u9304\uff1aCorona.php<\/span><\/li>\n    <li><span style=\"font-family: 'arial black', sans-serif\">database\/migrations\u76ee\u9304\uff1a<strong>[timestamp]create_coronas_table.php<\/strong><\/span><\/li>\n<\/ol>\n\n\u7de8\u8f2f<strong>[timestamp]create_coronas_table.php<\/strong>\n\u539f\u4f86\u7684<strong>create_coronas_table.php\u88cf\u7684up\u51fd\u5f0f\uff1a\n<\/strong>\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">public function up()\n{\n    Schema::create('coronas', function (Blueprint $table) {\n        $table-&gt;id();\n        $table-&gt;timestamps();\n    });\n}\n<\/pre>\n\n&nbsp;\n\u6539\u70ba\uff1a(\u52a0\u51652\u500b\u5b57\u4e32\u8868\u683c\u6b04\u4f4d\uff1acountry_name\u8207symptoms\uff0c1\u500b\u6574\u6578\u8868\u683c\u6b04\u4f4dcases)\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"php\">public function up()\n{\n        Schema::create('coronas', function (Blueprint $table) {\n            $table-&gt;id();\n            $table-&gt;string('country_name');\n            $table-&gt;string('symptoms');\n            $table-&gt;integer('cases');\n            $table-&gt;timestamps();\n        });\n }<\/pre>\n\n\u4e0a\u9762\u5b9a\u7fa9\u4e86corons\u8cc7\u6599\u8868\u683c\u7684\u6b04\u4f4dschema\uff0c\u5b9a\u7fa9\u5b8c\u5f8c\u518d\u4e0b\u4e00\u6b21\u6307\u4ee4\uff0c\u5b8c\u6210\u8cc7\u6599\u8868\u683c\u7684schema\u8a2d\u5b9a\uff1a\n\n<ul>\n    <li><span style=\"font-family: 'arial black', sans-serif\">php artisan migrate<\/span><\/li>\n<\/ul>\n\n\u6b64\u6642\u53ef\u5230\u8cc7\u6599\u5eab\u90a3\u908a\u6aa2\u8996coronas\u9019\u500b\u8868\u683c\u7684\u6b04\u4f4d\u5efa\u7acb\u60c5\u5f62\u3002\n<a href=\"https:\/\/fgchen.com\/wp\/wp-content\/uploads\/2020\/05\/laravel-coronas-table.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-16264\" src=\"https:\/\/fgchen.com\/wp\/wp-content\/uploads\/2020\/05\/laravel-coronas-table.png\" alt=\"\" width=\"903\" height=\"320\" \/><\/a>\n\u5982\u679c\u8981\u53cd\u8f49migration\u7684\u904e\u7a0b\uff0c\u53ef\u4ee5\u57f7\u884c<strong>php artisan migrate:rollback<\/strong>\u4f86\u522a\u9664coronas\u9019\u500b\u8868\u683c (\u6703\u57f7\u884cdown()\u51fd\u5f0f)\u3002\n\u63a5\u8457\u7de8\u8f2fCorona.php\uff0c\u4f86\u52a0\u5165fillable\u7684\u5c6c\u6027\uff1a(\u8a2d\u7f6e&#8217;country_name&#8217;, &#8216;symptoms&#8217;, &#8216;cases&#8217;\u9019\u4e09\u500b\u6b04\u4f4d\u662f\u53ef\u4ee5\u586b\u5beb\u7684\u3002)\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;?php\n\/\/ Corona.php\nnamespace App;\nuse IlluminateDatabaseEloquentModel;\nclass Corona extends Model\n{\n    protected $fillable = ['country_name', 'symptoms', 'cases'];\n}<\/pre>\n\n<h2>Step 3. \u5efa\u7acb\u8def\u7531\u8207\u63a7\u5236\u5668<\/h2>\n\n<ul>\n    <li><span style=\"font-family: 'arial black', sans-serif\">php artisan make:controller CoronaController &#8211;resource<\/span><\/li>\n<\/ul>\n\n\u6703\u5728CoronaController.php(appHttpControllers)\u5efa\u7acb6\u500b\u65b9\u6cd5\uff1a\n\n<ol class=\"postList\">\n    <li id=\"8c41\" class=\"graf graf--li graf-after--p\">index \u986f\u793aCoronas\u8cc7\u6599\u6e05\u55ae<\/li>\n    <li id=\"98d2\" class=\"graf graf--li graf-after--li\">Create \u986f\u793aCoronas\u7684\u65b0\u589e\u8868\u55ae<\/li>\n    <li id=\"052a\" class=\"graf graf--li graf-after--li\">Store \u5c07Create\u90a3\u908a\u7684\u8868\u55ae\u6240\u50b3\u4f86\u7684\u8cc7\u6599\u5132\u5b58\u81f3\u8cc7\u6599\u5eab\u3002<\/li>\n    <li id=\"58dc\" class=\"graf graf--li graf-after--li\">Show\u00a0 \u986f\u793a\u4e00\u500b\u7279\u5b9a\u7684Coronas\u8cc7\u6599<\/li>\n    <li id=\"57d9\" class=\"graf graf--li graf-after--li\">Edit \u986f\u793aCoronas\u8cc7\u6599\u7684\u4fee\u6539\u8868\u55ae<\/li>\n    <li id=\"507e\" class=\"graf graf--li graf-after--li\">Update \u5c07Edit\u90a3\u908a\u7684\u8cc7\u6599\u65b0\u589e\u81f3\u8cc7\u6599\u5eab<\/li>\n    <li id=\"d02a\" class=\"graf graf--li graf-after--li\">Destroy \u522a\u9664\u4e00\u7b46Corona<\/li>\n<\/ol>\n\nCoronaController.php\u5217\u8868\uff1a\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"php\">&lt;?php\nnamespace AppHttpControllers;\nuse IlluminateHttpRequest;\nclass CoronaController extends Controller\n{\n    \/**\n     * Display a listing of the resource.\n     *\n     * @return IlluminateHttpResponse\n     *\/\n    public function index()\n    {\n        \/\/\n    }\n    \/**\n     * Show the form for creating a new resource.\n     *\n     * @return IlluminateHttpResponse\n     *\/\n    public function create()\n    {\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        \/\/\n    }\n    \/**\n     * Display the specified resource.\n     *\n     * @param  int  $id\n     * @return IlluminateHttpResponse\n     *\/\n    public function show($id)\n    {\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        \/\/\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        \/\/\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        \/\/\n    }\n}\n<\/pre>\n\n&nbsp;\n\u7de8\u8f2froutesweb.php\uff0c\u63d2\u5165\u4ee5\u4e0b\u7a0b\u5f0f\u78bc\uff1a\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"php\">\/\/ web.php\nRoute::get('\/', function () {\n    return view('welcome');\n});\nRoute::resource('coronas', 'CoronaController');<\/pre>\n\n\u900f\u904e&#8211;resource, \u4f60\u53ef\u4ee5\u4f7f\u7528\u9019\u500b\u65b9\u6cd5resource()\u7522\u751f\u4ee5\u4e0a\u6240\u6709\u7684\u8def\u7531\uff0c\u800c\u4e0d\u9700\u8981\u4e00\u4e00\u500b\u5225\u5730\u6307\u5b9a\u4ee5\u4e0a\u7684\u8def\u7531\u3002\nActually, by adding the following code line, we have registered the multiple routes for our app. We can check it using the following command.\n\u5be6\u969b\u4e0a\uff0c\u85c9\u7531\u52a0\u5165\u8a72\u7a0b\u5f0f\u78bc\uff0c\u6211\u5011\u5df2\u7d93\u70ba\u6211\u5011\u7684\u61c9\u7528\u8a3b\u518a\u4e86\u591a\u500b\u8def\u7531\uff0c\u6211\u5011\u53ef\u4f7f\u7528\u5e95\u4e0b\u7684\u547d\u4ee4\u4f86\u6aa2\u8996\u9019\u4e9b\u8def\u7531\uff1a\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">php artisan route:list<\/pre>\n\n\u8f38\u51fa\uff1a\n<a href=\"https:\/\/fgchen.com\/wp\/wp-content\/uploads\/2020\/05\/lavavel-route-list.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-16275\" src=\"https:\/\/fgchen.com\/wp\/wp-content\/uploads\/2020\/05\/lavavel-route-list.png\" alt=\"\" width=\"1033\" height=\"244\" \/><\/a>\n&nbsp;\n\n<h2><span id=\"Step_4_Configure_Bootstrap_4\"><strong>Step 4: Configure Bootstrap 4<\/strong><\/span><\/h2>\n\n\u5b89\u88ddBootstrap\u548cVue\u5957\u4ef6\uff1a\n\n<ul>\n    <li><span style=\"font-family: 'arial black', sans-serif\">composer require laravel\/ui<\/span><\/li>\n<\/ul>\n\n\u5b89\u88ddbootstrap ui\u9df9\u67b6\uff1a\n\n<ul>\n    <li><span style=\"font-family: 'arial black', sans-serif\">php artisan ui bootstrap<\/span><\/li>\n<\/ul>\n\n\u7de8\u8b6f\u521d\u751f\u7684\u9df9\u67b6\uff1a\n\n<ul>\n    <li><span style=\"font-family: 'arial black', sans-serif\">npm install &amp;&amp; npm run dev<\/span><\/li>\n<\/ul>\n\n<h2><span id=\"Step_5_Create_the_views\"><span id=\"Step_4_Create_the_views\"><span id=\"5_Create_the_views\"><strong>Step 5: Create the views<\/strong><\/span><\/span><\/span><\/h2>\n\n\u5efa\u7acb\u4e26\u7de8\u8f2fviews\u76ee\u9304\u4e0b\u7684layout.blade.php\uff0c\u52a0\u5165\u4e0b\u5217\u7684code\uff1a\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"html\">&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n  &lt;meta charset=\"UTF-8\"&gt;\n  &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n  &lt;meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\"&gt;\n  &lt;title&gt;Laravel 7 CRUD Example&lt;\/title&gt;\n  &lt;link href=\"{{ asset('css\/app.css') }}\" rel=\"stylesheet\" type=\"text\/css\" \/&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n  &lt;div class=\"container\"&gt;\n    @yield('content')\n  &lt;\/div&gt;\n  &lt;script src=\"{{ asset('js\/app.js') }}\" type=\"text\/js\"&gt;&lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/pre>\n\n\u4e00\u6a23\uff0c\u5728views\u76ee\u9304\u5efa\u7acb\u4e09\u500b\u6a94\u6848\uff1a\n\n<ol>\n    <li><strong>create.blade.php<\/strong><\/li>\n    <li><strong>edit.blade.php<\/strong><\/li>\n    <li><strong>index.blade.php<\/strong><\/li>\n<\/ol>\n\n\u5728create.blade.php\u52a0\u5165\uff1a\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">@extends('layout')\n@section('content')\n&lt;style&gt;\n  .uper {\n    margin-top: 40px;\n  }\n&lt;\/style&gt;\n&lt;div class=\"card uper\"&gt;\n  &lt;div class=\"card-header\"&gt;\n    Add Corona Virus Data\n  &lt;\/div&gt;\n  &lt;div class=\"card-body\"&gt;\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            @endforeach\n        &lt;\/ul&gt;\n      &lt;\/div&gt;&lt;br \/&gt;\n    @endif\n      &lt;form method=\"post\" action=\"{{ route('coronas.store') }}\"&gt;\n          &lt;div class=\"form-group\"&gt;\n              @csrf\n              &lt;label for=\"country_name\"&gt;Country Name:&lt;\/label&gt;\n              &lt;input type=\"text\" class=\"form-control\" name=\"country_name\"\/&gt;\n          &lt;\/div&gt;\n          &lt;div class=\"form-group\"&gt;\n              &lt;label for=\"symptoms\"&gt;Symptoms :&lt;\/label&gt;\n              &lt;textarea rows=\"5\" columns=\"5\" class=\"form-control\" name=\"symptoms\"&gt;&lt;\/textarea&gt;\n          &lt;\/div&gt;\n          &lt;div class=\"form-group\"&gt;\n              &lt;label for=\"cases\"&gt;Cases :&lt;\/label&gt;\n              &lt;input type=\"text\" class=\"form-control\" name=\"cases\"\/&gt;\n          &lt;\/div&gt;\n          &lt;button type=\"submit\" class=\"btn btn-primary\"&gt;Add Data&lt;\/button&gt;\n      &lt;\/form&gt;\n  &lt;\/div&gt;\n&lt;\/div&gt;\n@endsection<\/pre>\n\n\u7de8\u8f2f<strong>Corona<\/strong><strong>Controller.php\uff0c<\/strong>\u5728create\u65b9\u6cd5\u4e0b\u52a0\u5165\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">\/\/ CoronaController.php\npublic function create()\n{\n   return view('create');\n}<\/pre>\n\n\u6b64\u6642\uff0c\u5230http:\/\/fgchen.com:8000\/coronas\/create\uff0c\u6703\u770b\u5230\u5e95\u4e0b\u7684\u756b\u9762\uff1a\n<a href=\"https:\/\/fgchen.com\/wp\/wp-content\/uploads\/2020\/05\/laravel-crud-create.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16222\" src=\"https:\/\/fgchen.com\/wp\/wp-content\/uploads\/2020\/05\/laravel-crud-create.png\" alt=\"\" width=\"987\" height=\"520\" \/><\/a>\n&nbsp;\n\n<h2><span id=\"Step_6_Add_Validation_rules_and_save_data\"><span id=\"Step_5_Add_Validation_rules_and_save_data\"><strong>Step 6: Add Validation rules and save data<\/strong><\/span><\/span><\/h2>\n\n\u5728\u9019\u500b\u6b65\u9a5f\uff0c\u6211\u5011\u8981\u52a0\u4e0a<a href=\"https:\/\/appdividend.com\/2019\/03\/09\/laravel-5-8-form-validation-tutorial-with-example\/\" target=\"_blank\" rel=\"noopener noreferrer\">Laravel form Validation<\/a>\n\u7de8\u8f2fCoronalController.php\uff0c\u52a0\u5165appCorona\u7684\u540d\u7a31\u7a7a\u9593\u7684\u4f7f\u7528\uff1a\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;?php\n\/\/ CoronaController.php\nnamespace AppHttpControllers;\nuse IlluminateHttpRequest;\nuse AppCorona;<\/pre>\n\n\u4e26\u4e14\u5728CoronalController.php\u7684store\u65b9\u6cd5\u52a0\u5165\uff1a\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">\/\/ CoronaController.php\npublic function store(Request $request)\n{\n        $validatedData = $request-&gt;validate([\n            'country_name' =&gt; 'required|max:255',\n            'symptoms' =&gt; 'required',\n            'cases' =&gt; 'required|numeric',\n        ]);\n        $show = Corona::create($validatedData);\n        return redirect('\/coronas')-&gt;with('success', 'Corona Case is successfully saved');\n}<\/pre>\n\n&nbsp;\nstore()\u65b9\u6cd5\u63a5\u6536\u5230\u5f9e\u5efa\u7acb\u8868\u55ae\u4f86\u7684$request\u8cc7\u6599\u7269\u4ef6\uff0c\u6211\u5011\u4f7f\u7528$request-&gt;validate\u9019\u500b\u65b9\u6cd5\u5b9a\u7fa9\u8cc7\u6599\u7684\u78ba\u8a8d\u898f\u5247\uff0c\u4f7f\u7528\u95dc\u806f\u9663\u5217\u5206\u5225\u5c0d\u4e0d\u540c\u6b04\u4f4d\u7d66\u5b9a\u78ba\u8a8d\u898f\u5247\uff0c\u6bcf\u4e00\u500b\u6b04\u4f4d\u7684\u78ba\u8a8d\u898f\u5247\u4ee5&#8221;|&#8221;\u6307\u5b9a\u591a\u7684\u898f\u5247\u3002\n\u52a0\u5165\u7684\u898f\u5247\u5728\u78ba\u4fdd\u7576\u4f7f\u7528\u8005\u6c92\u6709\u7d66\u8cc7\u6599(required)\u3001\u6700\u5927255\u500b\u5b57\u5143\u3001\u6578\u503c\u7684\u898f\u5247\u4e0b\uff0c\u9a57\u8b49\u5931\u6548\uff0c\u756b\u9762\u6703\u6709\u9069\u7576\u7684\u7d05\u8272\u63d0\u793a\u5b57\u773c\uff1a\n<a href=\"https:\/\/fgchen.com\/wp\/wp-content\/uploads\/2020\/05\/laravel-crud-validation-fails.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-16223\" src=\"https:\/\/fgchen.com\/wp\/wp-content\/uploads\/2020\/05\/laravel-crud-validation-fails.png\" alt=\"\" width=\"1024\" height=\"576\" \/><\/a>\n&nbsp;\n\n<h2><span id=\"Step_7_Display_the_data\"><span id=\"Step_6_Display_the_data\"><span id=\"7_Display_the_data\"><strong>Step 7: Display the data<\/strong><\/span><\/span><\/span><\/h2>\n\n\u6211\u5011\u63a5\u8457\u7de8\u8f2fCoronaController\u7684<strong>index<\/strong>\u529f\u80fd\uff1a\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"php\">\/\/ CoronaController.php\npublic function index()\n{\n        $coronacases = Corona::all();\n        return view('index', compact('coronacases'));\n}<\/pre>\n\n&nbsp;\n\u5efa\u7acbviews\u76ee\u9304\u4e0b\u7684index.blade.php\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"php\">@extends('layout')\n@section('content')\n&lt;style&gt;\n  .uper {\n    margin-top: 40px;\n  }\n&lt;\/style&gt;\n&lt;div class=\"uper\"&gt;\n  @if(session()-&gt;get('success'))\n    &lt;div class=\"alert alert-success\"&gt;\n      {{ session()-&gt;get('success') }}\n    &lt;\/div&gt;&lt;br \/&gt;\n  @endif\n  &lt;table class=\"table table-striped\"&gt;\n    &lt;thead&gt;\n        &lt;tr&gt;\n          &lt;td&gt;ID&lt;\/td&gt;\n          &lt;td&gt;Country Name&lt;\/td&gt;\n          &lt;td&gt;Symptoms&lt;\/td&gt;\n          &lt;td&gt;Cases&lt;\/td&gt;\n          &lt;td colspan=\"2\"&gt;Action&lt;\/td&gt;\n        &lt;\/tr&gt;\n    &lt;\/thead&gt;\n    &lt;tbody&gt;\n        @foreach($coronacases as $case)\n        &lt;tr&gt;\n            &lt;td&gt;{{$case-&gt;id}}&lt;\/td&gt;\n            &lt;td&gt;{{$case-&gt;country_name}}&lt;\/td&gt;\n            &lt;td&gt;{{$case-&gt;symptoms}}&lt;\/td&gt;\n            &lt;td&gt;{{$case-&gt;cases}}&lt;\/td&gt;\n            &lt;td&gt;&lt;a href=\"{{ route('coronas.edit', $case-&gt;id)}}\" class=\"btn btn-primary\"&gt;Edit&lt;\/a&gt;&lt;\/td&gt;\n            &lt;td&gt;\n                &lt;form action=\"{{ route('coronas.destroy', $case-&gt;id)}}\" method=\"post\"&gt;\n                  @csrf\n                  @method('DELETE')\n                  &lt;button class=\"btn btn-danger\" 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;div&gt;\n@endsection<\/pre>\n\n\u7d50\u679c\u756b\u9762\uff1a\n<a href=\"https:\/\/fgchen.com\/wp\/wp-content\/uploads\/2020\/05\/laravel-crud-index.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16224\" src=\"https:\/\/fgchen.com\/wp\/wp-content\/uploads\/2020\/05\/laravel-crud-index.png\" alt=\"\" width=\"866\" height=\"262\" \/><\/a>\n\n<h2><span id=\"Step_8_Create_Edit_and_Update_Operation\"><strong><span id=\"Step_7_Create_Edit_and_Update_Operation\">Step 8: Create Edit and Update Operation<\/span><\/strong><\/span><\/h2>\n\n\u6211\u5011\u63a5\u8457\u7de8\u8f2fCoronaController\u7684<b>edit<\/b>\u529f\u80fd\uff1a\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"php\">\/\/ CoronaController.php\npublic function edit($id)\n{\n        $coronacase = Corona::findOrFail($id);\n        return view('edit', compact('coronacase'));\n}<\/pre>\n\n\u5efa\u7acb\u8207\u7de8\u8f2f<strong>edit.blade.php<\/strong>\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"php\">@extends('layout')\n@section('content')\n&lt;style&gt;\n  .uper {\n    margin-top: 40px;\n  }\n&lt;\/style&gt;\n&lt;div class=\"card uper\"&gt;\n  &lt;div class=\"card-header\"&gt;\n    Edit Corona Virus Data\n  &lt;\/div&gt;\n  &lt;div class=\"card-body\"&gt;\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            @endforeach\n        &lt;\/ul&gt;\n      &lt;\/div&gt;&lt;br \/&gt;\n    @endif\n      &lt;form method=\"post\" action=\"{{ route('coronas.update', $coronacase-&gt;id ) }}\"&gt;\n          &lt;div class=\"form-group\"&gt;\n              @csrf\n              @method('PATCH')\n              &lt;label for=\"country_name\"&gt;Country Name:&lt;\/label&gt;\n              &lt;input type=\"text\" class=\"form-control\" name=\"country_name\" value=\"{{ $coronacase-&gt;country_name }}\"\/&gt;\n          &lt;\/div&gt;\n          &lt;div class=\"form-group\"&gt;\n              &lt;label for=\"symptoms\"&gt;Symptoms :&lt;\/label&gt;\n              &lt;textarea rows=\"5\" columns=\"5\" class=\"form-control\" name=\"symptoms\"&gt;{{ $coronacase-&gt;symptoms }}&lt;\/textarea&gt;\n          &lt;\/div&gt;\n          &lt;div class=\"form-group\"&gt;\n              &lt;label for=\"cases\"&gt;Cases :&lt;\/label&gt;\n              &lt;input type=\"text\" class=\"form-control\" name=\"cases\" value=\"{{ $coronacase-&gt;cases }}\"\/&gt;\n          &lt;\/div&gt;\n          &lt;button type=\"submit\" class=\"btn btn-primary\"&gt;Update Data&lt;\/button&gt;\n      &lt;\/form&gt;\n  &lt;\/div&gt;\n&lt;\/div&gt;\n@endsection<\/pre>\n\n\u7de8\u8f2fCoronaController\u7684update\u529f\u80fd\uff1a\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"php\">\/\/ CoronaController.php\npublic function update(Request $request, $id)\n{\n        $validatedData = $request-&gt;validate([\n            'country_name' =&gt; 'required|max:255',\n            'symptoms' =&gt; 'required',\n            'cases' =&gt; 'required|numeric',\n        ]);\n        Corona::whereId($id)-&gt;update($validatedData);\n        return redirect('\/coronas')-&gt;with('success', 'Corona Case Data is successfully updated');\n}<\/pre>\n\n<h2><span id=\"Step_9_Create_Delete_Functionality\"><span id=\"Step_8_Create_Delete_Functionality\"><strong>Step 9: Create Delete Functionality<\/strong><\/span><\/span><\/h2>\n\n\u7de8\u8f2fCoronaController<strong>\u00a0destroy <\/strong>\u65b9\u6cd5\uff1a\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"php\">\/\/ CoronaController.php\npublic function destroy($id)\n{\n        $coronacase = Corona::findOrFail($id);\n        $coronacase-&gt;delete();\n        return redirect('\/coronas')-&gt;with('success', 'Corona Case Data is successfully deleted');\n}<\/pre>\n\n\u6574\u500bCoronaController.php\u5217\u8868\uff1a\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"php\">&lt;?php\n\/\/ CoronaController.php\nnamespace AppHttpControllers;\nuse IlluminateHttpRequest;\nuse AppCorona;\nclass CoronaController extends Controller\n{\n    \/**\n     * Display a listing of the resource.\n     *\n     * @return IlluminateHttpResponse\n     *\/\n    public function index()\n    {\n        $coronacases = Corona::all();\n        return view('index', compact('coronacases'));\n    }\n    \/**\n     * Show the form for creating a new resource.\n     *\n     * @return IlluminateHttpResponse\n     *\/\n    public function create()\n    {\n        return view('create');\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        $validatedData = $request-&gt;validate([\n            'country_name' =&gt; 'required|max:255',\n            'symptoms' =&gt; 'required',\n            'cases' =&gt; 'required|numeric',\n        ]);\n        $show = Corona::create($validatedData);\n        return redirect('\/coronas')-&gt;with('success', 'Corona Case is successfully saved');\n    }\n    \/**\n     * Display the specified resource.\n     *\n     * @param  int  $id\n     * @return IlluminateHttpResponse\n     *\/\n    public function show($id)\n    {\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        $coronacase = Corona::findOrFail($id);\n        return view('edit', compact('coronacase'));\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        $validatedData = $request-&gt;validate([\n            'country_name' =&gt; 'required|max:255',\n            'symptoms' =&gt; 'required',\n            'cases' =&gt; 'required|numeric',\n        ]);\n        Corona::whereId($id)-&gt;update($validatedData);\n        return redirect('\/coronas')-&gt;with('success', 'Corona Case Data is successfully updated');\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        $coronacase = Corona::findOrFail($id);\n        $coronacase-&gt;delete();\n        return redirect('\/coronas')-&gt;with('success', 'Corona Case Data is successfully deleted');\n    }\n}<\/pre>\n\n<h2>\u6700\u5f8c\uff0c\u6211\u81ea\u5df1\u5728\u9996\u9801index.blade.php\u52a0\u4e0a\u4e00\u500b&#8221;Add a new coron virus record&#8221;\u6309\u9215\uff1a<\/h2>\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">@extends('layout')\n@section('content')\n&lt;style&gt;\n  .uper {\n    margin-top: 40px;\n  }\n&lt;\/style&gt;\n&lt;div class=\"uper\"&gt;\n  @if(session()-&gt;get('success'))\n    &lt;div class=\"alert alert-success\"&gt;\n      {{ session()-&gt;get('success') }}\n    &lt;\/div&gt;&lt;br \/&gt;\n  @endif\n  &lt;h1 class=\"dislay-1\"&gt;Corona virus records in the wrold&lt;\/h1&gt;\n  &lt;a class=\"btn btn-primary\" href=\"{{ route('coronas.create') }}\" role=\"button\" style=\"margin-bottom:10px\"&gt;Add&lt;\/a&gt;\n  &lt;table class=\"table table-striped\"&gt;\n    &lt;thead&gt;\n        &lt;tr&gt;\n          &lt;td&gt;ID&lt;\/td&gt;\n          &lt;td&gt;Country Name&lt;\/td&gt;\n          &lt;td&gt;Symptoms&lt;\/td&gt;\n          &lt;td&gt;Cases&lt;\/td&gt;\n          &lt;td colspan=\"2\"&gt;Action&lt;\/td&gt;\n        &lt;\/tr&gt;\n    &lt;\/thead&gt;\n    &lt;tbody&gt;\n        @foreach($coronacases as $case)\n        &lt;tr&gt;\n            &lt;td&gt;{{$case-&gt;id}}&lt;\/td&gt;\n            &lt;td&gt;{{$case-&gt;country_name}}&lt;\/td&gt;\n            &lt;td&gt;{{$case-&gt;symptoms}}&lt;\/td&gt;\n            &lt;td&gt;{{$case-&gt;cases}}&lt;\/td&gt;\n            &lt;td&gt;&lt;a href=\"{{ route('coronas.edit', $case-&gt;id)}}\" class=\"btn btn-primary\"&gt;Edit&lt;\/a&gt;&lt;\/td&gt;\n            &lt;td&gt;\n                &lt;form action=\"{{ route('coronas.destroy', $case-&gt;id)}}\" method=\"post\"&gt;\n                  @csrf\n                  @method('DELETE')\n                  &lt;button class=\"btn btn-danger\" 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;div&gt;\n@endsection\n<\/pre>\n\n&nbsp;\n<a href=\"https:\/\/fgchen.com\/wp\/wp-content\/uploads\/2020\/05\/laravel-coronas-index-add-button.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-16282\" src=\"https:\/\/fgchen.com\/wp\/wp-content\/uploads\/2020\/05\/laravel-coronas-index-add-button.png\" alt=\"\" width=\"960\" height=\"269\" \/><\/a>","protected":false},"excerpt":{"rendered":"<p>\u8cc7\u6599\u4f86\u6e90\uff1aLaravel 7 CRUD Example | Laravel 7  &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[266],"tags":[185],"class_list":["post-12147","post","type-post","status-publish","format-standard","hentry","category-266","tag-laravel"],"_links":{"self":[{"href":"https:\/\/fgchen.com\/wpedu\/wp-json\/wp\/v2\/posts\/12147","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fgchen.com\/wpedu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fgchen.com\/wpedu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fgchen.com\/wpedu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fgchen.com\/wpedu\/wp-json\/wp\/v2\/comments?post=12147"}],"version-history":[{"count":1,"href":"https:\/\/fgchen.com\/wpedu\/wp-json\/wp\/v2\/posts\/12147\/revisions"}],"predecessor-version":[{"id":13331,"href":"https:\/\/fgchen.com\/wpedu\/wp-json\/wp\/v2\/posts\/12147\/revisions\/13331"}],"wp:attachment":[{"href":"https:\/\/fgchen.com\/wpedu\/wp-json\/wp\/v2\/media?parent=12147"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fgchen.com\/wpedu\/wp-json\/wp\/v2\/categories?post=12147"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fgchen.com\/wpedu\/wp-json\/wp\/v2\/tags?post=12147"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}