当前位置:首页 > CMS教程 > 其它CMS > 列表

laravel-admin利用ModelTree实现对分类信息的管理

发布:smiling 来源: PHP粉丝网  添加日期:2022-02-06 09:18:09 浏览: 评论:0 

这篇文章主要介绍了laravel-admin利用ModelTree实现对分类信息的管理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

生成模型和迁移文件

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.   use ModelTree, AdminBuilder; 
  19.   protected $table="shoping_categories"
  20.   public function __construct(array $attributes = []) 
  21.   { 
  22.     parent::__construct($attributes); 
  23.     $this->setTitleColumn("name"); 
  24.   } 

迁移文件

  1. class CreateCategoriesTable extends Migration 
  2.   /** 
  3.    * Run the migrations. 
  4.    * 
  5.    * @return void 
  6.    */ 
  7.   public function up() 
  8.   { 
  9.     Schema::create('shoping_categories'function (Blueprint $table) { 
  10.       $table->increments('id'); 
  11.       $table->integer('parent_id')->unsigned()->nullable(); 
  12.       $table->string('name'); 
  13.       $table->string('description')->nullable(); 
  14.       $table->integer('order')->unsigned(); 
  15.       $table->timestamps(); 
  16.     }); 
  17.   } 
  18.  
  19.   /** 
  20.    * Reverse the migrations. 
  21.    * 
  22.    * @return void 
  23.    */ 
  24.   public function down() 
  25.   { 
  26.     Schema::dropIfExists('shoping_categories'); 
  27.   } 

生成控制器

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.   public function index(Content $content
  15.   { 
  16.     return $content->title($this->title) 
  17.       ->description("分类列表"
  18.       ->row(function (Row $row) { 
  19.         $row->column(6, $this->treeView()->render()); 
  20.         $row->column(6, function (Column $column) { 
  21.           $form = new Form(); 
  22.           $form->select('parent_id'"父类名称")->options(Category::selectOptions()); 
  23.           $form->text('name', __('Name')); 
  24.           $form->text('description', __('Description')); 
  25.           $form->number('order''排序序号')->default(0); 
  26.           $column->append((new Box(trans('admin.new'), $form))->style('success')); 
  27.         }); 
  28.  
  29.       }); 
  30.  
  31.   } 
  32.  
  33.   protected function treeView() 
  34.   { 
  35.     return Category::tree(function (Tree $tree) { 
  36.       $tree->disableCreate(); 
  37.       return $tree
  38.     }); 
  39.   } 

添加路由

app/admin/routes.php

$router->resource('categories',CategoryController::class);

Tags: laravel-admin ModelTree

分享到: