首页 > 开发 > PHP > 正文

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

2024-05-04 22:53:07
字体:
来源:转载
供稿:网友

生成模型和迁移文件

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

app/Models/Shoping/Category.php

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

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表