现在的位置: 首页 > 云计算 > 正文

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

2020年02月18日 云计算 ⁄ 共 2330字 ⁄ 字号 评论关闭

  生成模型和迁移文件

  php artisan make:model Models/Shoping/Category -m

  app/Models/Shoping/Category.php

  < ?php   namespace App\Models\Shoping;   use Encore\Admin\Traits\AdminBuilder;   use Encore\Admin\Traits\ModelTree;   use Illuminate\Database\Eloquent\Model;   /**   *   * Class Category   * @package App\Models\Shoping   */   class Category extends Model   {   //   use ModelTree, AdminBuilder;   protected $table="shoping_categories";   public function __construct(array $attributes = [])   {   parent::__construct($attributes);   $this->setTitleColumn("name");

  }

  }

  迁移文件

  class CreateCategoriesTable extends Migration

  {

  /**

  * Run the migrations.

  *

  * @return void

  */

  public function up()

  {

  Schema::create('shoping_categories', function (Blueprint $table) {

  $table->increments('id');

  $table->integer('parent_id')->unsigned()->nullable();

  $table->string('name');

  $table->string('description')->nullable();

  $table->integer('order')->unsigned();

  $table->timestamps();

  });

  }

  /**

  * Reverse the migrations.

  *

  * @return void

  */

  public function down()

  {

  Schema::dropIfExists('shoping_categories');

  }

  }

  生成控制器

  php artisan admin:make CategoriesController --model=App\Models\Shoping\Category

  app/Admin/Controllers/CategoriesController.php

  PHPuse App\Models\Shoping\Category;

  use Encore\Admin\Controllers\AdminController;

  use Encore\Admin\Form;

  use Encore\Admin\Grid;

  use Encore\Admin\Layout\Column;

  use Encore\Admin\Layout\Content;

  use Encore\Admin\Layout\Row;

  use Encore\Admin\Show;

  use Encore\Admin\Tree;

  use Encore\Admin\Widgets\Box;

  class CategoriesController extends AdminController

  {

  public function index(Content $content)

  {

  return $content->title($this->title)

  ->description("分类列表")

  ->row(function (Row $row) {

  $row->column(6, $this->treeView()->render());

  $row->column(6, function (Column $column) {

  $form = new Form();

  $form->select('parent_id', "父类名称")->options(Category::selectOptions());

  $form->text('name', __('Name'));

  $form->text('description', __('Description'));

  $form->number('order', '排序序号')->default(0);

  $column->append((new Box(trans('admin.new'), $form))->style('success'));

  });

  });

  }

  protected function treeView()

  {

  return Category::tree(function (Tree $tree) {

  $tree->disableCreate();

  return $tree;

  });

  }

  添加路由

  app/admin/routes.php

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

  以上就是laravel-admin利用ModelTree实现对分类信息的管理的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

抱歉!评论已关闭.