laravel 模板继承_Laravel-admin 创建美观的树形无限极分类视图

本文介绍了在laravel 5.8和laravel-admin 1.7环境下,如何实现模板继承来创建美观的树形无限极分类视图。详细讲述了PortalCategory模型的定义,使用了两个trait来构造树形结构数据,并提供了控制器AdminPortalCategory的定义,该控制器继承自AdminController并使用了HasResourceActions trait,实现了index、show、edit、create等操作。
摘要由CSDN通过智能技术生成

版本说明:laravel 5.8/laravel-admin 1.7

表和模型:

7f2339468a1e46ccf04dac9073946b56.png

PortalCategory MODEL 文件定义

<?php

namespace AppAdminModels;

use EncoreAdminTraitsAdminBuilder;
use EncoreAdminTraitsModelTree;
use IlluminateDatabaseEloquentModel;

class PortalCategory extends Model
{
 use ModelTree, AdminBuilder;
 protected $table="portal_category";

 protected $fillable = ['parent_id', 'name', 'list_order'];

 protected $with = [
 'parent'
 ];

 public function __construct(array $attributes = [])
 {
 parent::__construct($attributes);

 $this->setParentColumn('parent_id');
 $this->setOrderColumn('list_order');
 $this->setTitleColumn('name');

 }

 /**
     * 该分类下的子分类
     */
 public function child(){

 return $this->hasMany(get_class($this),'parent_id',$this->getKeyName());
 }

 /**
     * 该分类的父分类
     */
 public function parent(){

 return $this->hasMany(get_class($this),$this->getKeyName(),'parent_id');
 }
}

使用了两个trait:ModelTreeAdminBuilder方便构造树形结构数据。 需要注意的是在定义表结构时,需要存在parent_id, order_list, name字段,当然意义上跟其一致即可,名称可以随意定义,可以在构造方法中设置对应字段的名称。

控制器定义:

AdminPortalCategory.php的定义:

<?php

namespace AppAdminControllers;

use AppAdminModelsPortalCategory;
use AppAdminModelsPortalPost;
use EncoreAdminControllersHasResourceActions;
use EncoreAdminLayout{Column, Row, Content};
use EncoreAdmin{Tree,Form};
use EncoreAdminWidgetsBox;
use IlluminateHttpRedirectResponse;


/**
 * 分类管理
 * @package AppAdminControllers
*/
class AdminPortalCategory extends Content
{

    use HasResourceActions;
    /**
     * Title for current resource.
     *
     * @var string
     */
    protected $title = '文章分类管理';

    /**
     * 首页
     * @pa
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值