您的位置:首页 > 编程语言 > PHP开发

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

2020-02-13 10:49 891 查看

生成模型和迁移文件

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 信息管理
相关文章推荐