🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
下载Laravel指定版本: ~~~ composer create-project laravel/laravel=8.6.5 --prefer-dist LaravelCMS ~~~ 后台HTML模板: https://adminlte.io 【Laravel迁移】 ~~~ // 1.生成迁移 php artisan make:migration create_demos_table // 2.设置表的字段设置 // 3.运行迁移 php artisan migrate // 4.回滚迁移 php artisan migrate:rollback // 5.重建数据库 php artisan migrate:refresh ~~~ 【过长字段问题】 刚安装laravel运行php artisan的时候,会出现字段过长而无法正常运行,这时候需要在app\\Providers\\AppServiceProvider.php下加入以下代码: ~~~ use Illuminate\Support\Facades\Schema; public function boot() { Schema::defaultStringLength(191); } ~~~ 【通过迁移文件,后加字段】 ~~~ php artisan make:migration add_field_into_demos ~~~ ~~~ // 运行迁移时会被调用 public function up() { Schema::table('users',function (Blueprint $table) { $table->string('status')->after('content')->default(0); }); } // 回滚迁移时会被调用 public function down() { Schema::table('users', function (Blueprint $table) { $table->dropColumn('status'); }); } ~~~ 【模型】 ~~~ // 1.最基础的模型 php artisan make:model Demo // 2.指定表名和主键 protected $table = "remarks"; protected $primaryKey = 'remark_id'; // 3.加入常量的设置 const STATUS1 = 0; const STATUS1 = 1; ~~~ 新增功能,控制器部分: ~~~ /** * create方法新增 */ public function create(Request $request) { // 数据验证 $request->validate([ 'title' => 'required|max:255', 'content' => 'required', ]); // 保存数据 $data = [ 'title' => request('title'), 'content' => request('content'), ]; Remark::create($data); // 返回操作 return back(); } /** * save方法新增 */ public function save(Request $request) { // 数据验证 $request->validate([ 'title' => 'required|max:255', 'content' => 'required', ]); // 保存数据 $model = new Remark(); $model->title = request('title'); $model->content = request('content'); $model->save(); // 返回操作 return back(); } /** * tinker方式新增 */ public function tinker_demo() { $remark = new \App\Models\Remark; $remark->title = 'title1'; $remark->content = 'content1'; $remark->save(); $remark = new \App\Models\Remark; $remark->title = 'title2'; $remark->content = 'content2'; $remark->save(); $remark = new \App\Models\Remark; $remark->title = 'title3'; $remark->content = 'content3'; $remark->save(); } /** * factory方式新增 */ public function factory_demo() { // $user = User::factory()->create(); // $user = User::factory()->count(3)->create(); // php artisan make:factory RemarkFactory $remark = Remark::factory()->count(3)->create(); return $remark; } ~~~ 编辑功能,html部分: ~~~ <a class="btn btn-info btn-sm remark-edit" id="id1" title="title1" content="content1" data-toggle="modal" data-target="#remark-edit">编辑</a> <script> $(document).ready(function() { $(".remark-edit").click(function() { var id = $(this).attr('id'); var title = $(this).attr('title'); var content = $(this).attr('content'); $("#edit_id").val(id); $("#edit_title").val(title); $("#edit_content").val(content); }); }); </script> ~~~ 更新功能,控制器部分: ~~~ /** * update方法更新 */ public function update(Request $request) { // 数据验证 $request->validate([ 'edit_id' => 'required|integer', 'edit_title' => 'required|max:255', 'edit_content' => 'required', ]); $remark = Remark::where('id', request('edit_id'))->first(); if(empty($remark)) { return '找不到数据'; } // 保存数据 $data = [ 'title' => request('edit_title'), 'content' => request('edit_content'), ]; Remark::where('id', request('edit_id'))->update($data); // 返回操作 return back(); } /** * save方法更新 */ public function saveUpdate(Request $request) { // 数据验证 $request->validate([ 'edit_id' => 'required|integer', 'edit_title' => 'required|max:255', 'edit_content' => 'required', ]); $remark = Remark::where('id', request('edit_id'))->first(); if(empty($remark)) { return '找不到数据'; } // 保存数据 $remark->title = request('edit_title'); $remark->content = request('edit_content'); $remark->save(); // 返回操作 return back(); } ~~~ 删除功能,jQuery部分: ~~~ function deleleRemark(id) { var ask = confirm('是否删除这个备注'); if(ask) { $.ajax({ type: "POST", url: "/api/admin/remark/delete", data: { id: id, key: 'key_value', }, cache : false, success: function(data) { window.location.reload(); } ,error: function(xhr, status, error) { alert(error); }, }); } } ~~~ 新增字段: ~~~ php artisan make:migration add_delete_into_remarks ~~~