网络编程 
首页 > 网络编程 > 浏览文章

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

(编辑:jimmy 日期: 2025/12/30 浏览:3 次 )

生成模型和迁移文件

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

app/Models/Shoping/Category.php

<"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

use 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);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

上一篇:php获取本年、本月、本周时间戳和日期格式的实例代码
下一篇:PHP实现文件分片上传的实例代码
一句话新闻
一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?
友情链接:杰晶网络 DDR爱好者之家 南强小屋 黑松山资源网 白云城资源网 网站地图 SiteMap