php教程

超轻量级php框架startmvc

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

更新时间:2020-04-14 20:03:26 作者:startmvc
生成模型和迁移文件phpartisanmake:modelModels/Shoping/Category-mapp/Models/Shoping/Category.php<?phpnames

生成模型和迁移文件


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 分类信息管理 laravel 分类信息管理