咔叽网单游戏基地

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 55|回复: 0

[PHP编程] laravel-admin利用ModelTree实现对分类信息的管理

[复制链接]

该用户从未签到

1万

主题

1万

帖子

2万

积分

超级版主

Rank: 13Rank: 13Rank: 13Rank: 13

积分
27343
发表于 2020-4-16 09:54:57 | 显示全部楼层 |阅读模式
本帖最后由 那爱 于 2020-4-16 12:39 编辑

生成模型和迁移文件
  1. php artisan make:model Models/Shoping/Category -m
复制代码
app/Models/Shoping/Category.php
  1. <?php
  2.   
  3. namespace App\Models\Shoping;
  4.   
  5. use Encore\Admin\Traits\AdminBuilder;
  6. use Encore\Admin\Traits\ModelTree;
  7. use Illuminate\Database\Eloquent\Model;
  8.   
  9. /**
  10. *
  11. * Class Category
  12. * @package App\Models\Shoping
  13. */
  14.   
  15.   
  16. class Category extends Model
  17. {
  18.   //
  19.   use ModelTree, AdminBuilder;
  20.   protected $table="shoping_categories";
  21.   public function __construct(array $attributes = [])
  22.   {
  23.     parent::__construct($attributes);
  24.     $this->setTitleColumn("name");
  25.   }
  26. }
复制代码
迁移文件
  1. class CreateCategoriesTable extends Migration
  2. {
  3.   /**
  4.    * Run the migrations.
  5.    *
  6.    * @return void
  7.    */
  8.   public function up()
  9.   {
  10.     Schema::create('shoping_categories', function (Blueprint $table) {
  11.       $table->increments('id');
  12.       $table->integer('parent_id')->unsigned()->nullable();
  13.       $table->string('name');
  14.       $table->string('description')->nullable();
  15.       $table->integer('order')->unsigned();
  16.       $table->timestamps();
  17.     });
  18.   }
  19.   
  20.   /**
  21.    * Reverse the migrations.
  22.    *
  23.    * @return void
  24.    */
  25.   public function down()
  26.   {
  27.     Schema::dropIfExists('shoping_categories');
  28.   }
  29. }
复制代码
生成控制器
  1. php artisan admin:make CategoriesController --model=App\Models\Shoping\Category
复制代码
app/Admin/Controllers/CategoriesController.php
  1. use App\Models\Shoping\Category;
  2. use Encore\Admin\Controllers\AdminController;
  3. use Encore\Admin\Form;
  4. use Encore\Admin\Grid;
  5. use Encore\Admin\Layout\Column;
  6. use Encore\Admin\Layout\Content;
  7. use Encore\Admin\Layout\Row;
  8. use Encore\Admin\Show;
  9. use Encore\Admin\Tree;
  10. use Encore\Admin\Widgets\Box;
  11.   
  12. class CategoriesController extends AdminController
  13. {
  14.   
  15.   public function index(Content $content)
  16.   {
  17.     return $content->title($this->title)
  18.       ->description("分类列表")
  19.       ->row(function (Row $row) {
  20.         $row->column(6, $this->treeView()->render());
  21.         $row->column(6, function (Column $column) {
  22.           $form = new Form();
  23.           $form->select('parent_id', "父类名称")->options(Category::selectOptions());
  24.           $form->text('name', __('Name'));
  25.           $form->text('description', __('Description'));
  26.           $form->number('order', '排序序号')->default(0);
  27.           $column->append((new Box(trans('admin.new'), $form))->style('success'));
  28.         });
  29.   
  30.       });
  31.   
  32.   }
  33.   
  34.   protected function treeView()
  35.   {
  36.     return Category::tree(function (Tree $tree) {
  37.       $tree->disableCreate();
  38.       return $tree;
  39.     });
  40.   }
复制代码
添加路由
app/admin/routes.php
  1. $router->resource('categories',CategoryController::class);
复制代码
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持咔叽网单www.2nzz.com。
回复

使用道具 举报

QQ|手机版|小黑屋|咔叽网单

GMT+8, 2020-6-1 06:41

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表