• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    laravel-admin利用ModelTree实现对分类信息的管理
    POST TIME:2021-10-18 03:54

    生成模型和迁移文件

    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

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

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

    您可能感兴趣的文章:
    • laravel-admin 管理平台获取当前登陆用户信息的例子
    上一篇:PHP实现文件分片上传的实例代码
    下一篇:php获取本年、本月、本周时间戳和日期格式的实例代码
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信