应用入门开发开发

以一个博客管理的后台增删改查页面为例,完成博客的管理。

数据库迁移文件

在数据库迁移目录增加数据库迁移文件,内容如下

文件路径:database/migrations/2021_01_12_000000_create_blog.php

  1. <?php
  2. use Illuminate\Database\Schema\Blueprint;
  3. use Illuminate\Database\Migrations\Migration;
  4. use Illuminate\Support\Facades\Schema;
  5. class CreateBlog extends Migration
  6. {
  7. public function up()
  8. {
  9. Schema::create('blog', function (Blueprint $table) {
  10. $table->increments('id');
  11. $table->timestamps();
  12. $table->string('title', 200)->nullable()->comment('标题');
  13. $table->string('cover', 200)->nullable()->comment('封面');
  14. $table->string('summary', 200)->nullable()->comment('摘要');
  15. $table->text('content')->nullable()->comment('内容');
  16. });
  17. }
  18. public function down()
  19. {
  20. // 数据库回滚是比较危险的操作,推荐使用人工代替
  21. }
  22. }

完成,在命令行运行迁移文件脚本

  1. php artisan migrate

执行成功会提示 Migrated: 2021_01_12_000000_create_blog

增加路由和菜单导航

增加后台管理控制器路由( 文件 app/Admin/routes.php

  1. <?php
  2. Route::group(
  3. [
  4. 'prefix' => env('ADMIN_PATH', '/admin/'),
  5. 'middleware' => ['admin.bootstrap', 'admin.auth'],
  6. 'namespace' => '\App\Admin\Controller',
  7. ], function () {
  8. Route::match(['get', 'post'], '', 'IndexController@index');
  9. // 增加路由开始
  10. Route::match(['get', 'post'], 'blog', 'BlogController@index');
  11. Route::match(['get', 'post'], 'blog/add', 'BlogController@add');
  12. Route::match(['get', 'post'], 'blog/edit', 'BlogController@edit');
  13. Route::match(['get', 'post'], 'blog/delete', 'BlogController@delete');
  14. Route::match(['get', 'post'], 'blog/show', 'BlogController@show');
  15. // 增加路由结束
  16. });

增加导航菜单( 文件 app/Admin/Core/ModuleServiceProvider.php

  1. // ...
  2. public function boot(Dispatcher $events)
  3. {
  4. AdminMenu::register(function () {
  5. return [
  6. [
  7. 'title' => '系统概况',
  8. 'icon' => 'home',
  9. 'sort' => 50,
  10. 'url' => '\App\Admin\Controller\IndexController@index',
  11. ],
  12. // 增加导航开始
  13. [
  14. 'title' => '博客管理',
  15. 'icon' => 'list',
  16. 'sort' => 150,
  17. 'url' => '\App\Admin\Controller\BlogController@index',
  18. ]
  19. // 增加导航结束
  20. ];
  21. });
  22. }
  23. // ...

编写CRUD逻辑

创建博客增删改查页面,实现逻辑(文件 app/Admin/Controller/BlogController.php)

  1. <?php
  2. namespace App\Admin\Controller;
  3. use Illuminate\Routing\Controller;
  4. use ModStart\Admin\Concern\HasAdminCRUD;
  5. use ModStart\Detail\Detail;
  6. use ModStart\Form\Form;
  7. use ModStart\Grid\Grid;
  8. class BlogController extends Controller
  9. {
  10. use HasAdminCRUD;
  11. public function grid()
  12. {
  13. $grid = Grid::make('blog');
  14. $grid->id('id', 'ID');
  15. $grid->text('title', '标题');
  16. $grid->image('cover', '封面');
  17. $grid->textarea('summary', '摘要');
  18. $grid->richHtml('content', '内容');
  19. $grid->display('created_at', '创建时间');
  20. $this->pageTitle('博客管理');
  21. return $grid;
  22. }
  23. public function form()
  24. {
  25. $form = Form::make('blog');
  26. $form->text('title', '标题');
  27. $form->image('cover', '封面');
  28. $form->textarea('summary', '摘要');
  29. $form->richHtml('content', '内容');
  30. return $form;
  31. }
  32. public function detail()
  33. {
  34. $detail = Detail::make('blog');
  35. $detail->id('id', 'ID');
  36. $detail->display('created_at', '创建时间');
  37. $detail->text('title', '标题');
  38. $detail->image('cover', '封面');
  39. $detail->textarea('summary', '摘要');
  40. $detail->richHtml('content', '内容');
  41. return $detail;
  42. }
  43. }

以上三步,即可实现博客的基础增删改查操作。

grid方法对应数据的表格页,参考数据表格来实现列表页的相关功能逻辑。

detail方法对应数据的详情页,在列表页操作列的查看按钮点击进入,参考数据详情来实现详情页的相关功能逻辑。

form方法对应数据的创建编辑页,参考数据表单来实现数据创建和编辑页的相关功能逻辑。

成果预览

后台博客管理页面

后台博客管理界面

博客增加/编辑页面

博客增加/编辑页面

博客查看页面

博客查看页面