laravel集成baum

2024-03-12 20:32
文章标签 集成 laravel baum

本文主要是介绍laravel集成baum,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

安装git https://github.com/etrepat/baum 

运行install后会生成migrate,默认有id, parent_id, lft, rgt, depth, 其他根据自己需要自定

$table->increments('id');
$table->string('title')->comment('栏目名称');
$table->integer('parent_id')->nullable()->index()->comment('父级id'); //生成的
$table->string('keywords')->nullable();
$table->string('description')->nullable();
$table->integer('sort');
$table->integer('is_show')->comment('是否显示');
$table->integer('lft')->nullable()->index(); //生成的
$table->integer('rgt')->nullable()->index(); //生成的
$table->integer('depth')->nullable(); //生成的
模型:

model不继承Model,需要继承Node

<?phpnamespace App;use Illuminate\Database\Eloquent\Model;
use Baum;class Taxon extends  Baum\Node
{protected $table = 'taxons';protected $fillable=['title','parent_id','keywords','description', 'sort', 'is_show', 'lft', 'rgt', 'depth'];
}

自动填充

<?phpnamespace App\Jobs;use App\Taxon;
use Illuminate\Bus\Queueable;
use Illuminate\Foundation\Bus\Dispatchable;class TaxonFormFields
{use Dispatchable, Queueable;protected $id;protected $fieldList = ['title' => '','parent_id' => '','keywords' => '','description' => '','is_show' => '1','sort' => '50',];/*** Create a new job instance.** @return void*/public function __construct($id = null){$this->id = $id;}/*** Execute the job.** @return void*/public function handle(){$fields = $this->fieldList;if ($this->id) {$fields = Taxon::findOrFail($this->id);}return $fields;}
}


自定义request

<?phpnamespace App\Http\Requests;use Illuminate\Foundation\Http\FormRequest;class TaxonRequest extends FormRequest
{/*** Determine if the user is authorized to make this request.** @return bool*/public function authorize(){return true;}/*** Get the validation rules that apply to the request.** @return array*/public function rules(){return ['title' => 'required'];}/*** Return the fields and values to create a new post from*/public function fillData(){return ['title' => $this->title,'parent_id' => $this->parent_id,'keywords' => $this->keywords,'description' => $this->description,'is_show' => $this->is_show,'sort' => $this->sort,'lang' => 'zh-cn',];}
}


表单

<div class="form-group"><label for="taxon_title" class="col-sm-1 control-label">{{ trans('admin.title') }}</label><div class="col-sm-11"><input type="text" class="form-control" id="taxon_title" name="title" value="{{ $title }}"><p class="help-block">{{ $errors->first('title') }}</p></div>
</div>
<div class="form-group"><label for="taxon_keywords" class="col-sm-1 control-label">{{ trans('admin.keywords') }}</label><div class="col-sm-11"><input type="text" class="form-control" id="taxon_keywords" name="keywords" value="{{ $keywords }}"></div>
</div>
<div class="form-group"><label for="taxon_description" class="col-sm-1 control-label">{{ trans('admin.description') }}</label><div class="col-sm-11"><textarea class="form-control" id="taxon_description" name="description">{{ $description }}</textarea></div>
</div>
<div class="form-group"><label for="taxon_is_showe" class="col-sm-1 control-label">{{ trans('admin.is_show') }}</label><div class="col-sm-11"><input type="radio" id="taxon_is_show_1" name="is_show" value="{{ $is_show }}" @if($is_show == 1) checked="checked" @endif> {{ trans('admin.yes') }}<input type="radio" id="taxon_is_show_0" name="is_show" value="{{ $is_show }}" @if($is_show == 0) checked="checked" @endif> {{ trans('admin.no') }}</div>
</div>
<div class="form-group"><label for="taxon_sort" class="col-sm-1 control-label">{{ trans('admin.sort') }}</label><div class="col-sm-11"><input type="text" class="form-control" id="taxon_sort" name="sort" value="{{ $sort }}"></div>
</div>
<div class="form-group"><div class="col-sm-offset-1 col-sm-11"><input type="hidden" name="parent_id" value="{{ $parent_id }}" /><input type="submit" class="btn btn-default" value="提交" /></div>
</div>


添加分类

/*** 创建新表单页面** @return Response*/public function create(Request $request){$taxon = $this->dispatch(new TaxonFormFields());$parent_id = $request->get( 'parent_id', '');$taxon['parent_id'] = $parent_id;return view('admin/taxon/create', $taxon);}/*** 将新创建存储到存储器** @param Request $request* @return Response*/public function store(TaxonRequest $request){$parent = Taxon::find($request->input('parent_id'));$taxon = Taxon::create($request->fillData());$taxon->makeChildOf($parent);return redirect('admin/taxons');}


修改如果只修改数据,不修改分类结构就按照laravel修改就可以,

/*** 显示编辑表单页面** @param int $id* @return Response*/public function edit($id){$taxon = $this->dispatch(new TaxonFormFields($id));return view('admin/taxon/edit', $taxon);}/*** 在存储器中更新** @param Request $request* @param int $id* @return Response*/public function update(TaxonRequest $request, $id){$taxon = Taxon::findOrFail($id);$taxon = $taxon->fill($request->fillData());$taxon->save();return redirect('admin/taxons');}


删除

/*** 从存储器中移除** @param int $id* @return Response*/public function destroy($id){$taxon = Taxon::findOrFail($id);$taxon->delete();return response()->json(['error_num' => '0', 'link' => '/admin/taxons']);}




这篇关于laravel集成baum的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/802487

相关文章

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

【Shiro】Shiro 的学习教程(三)之 SpringBoot 集成 Shiro

目录 1、环境准备2、引入 Shiro3、实现认证、退出3.1、使用死数据实现3.2、引入数据库,添加注册功能后端代码前端代码 3.3、MD5、Salt 的认证流程 4.、实现授权4.1、基于角色授权4.2、基于资源授权 5、引入缓存5.1、EhCache 实现缓存5.2、集成 Redis 实现 Shiro 缓存 1、环境准备 新建一个 SpringBoot 工程,引入依赖:

系统架构师-ERP+集成

ERP   集成平台end:就懒得画新的页

Spring Boot集成Tess4J实现OCR

1.什么是Tess4j? Tesseract是一个开源的光学字符识别(OCR)引擎,它可以将图像中的文字转换为计算机可读的文本。支持多种语言和书面语言,并且可以在命令行中执行。它是一个流行的开源OCR工具,可以在许多不同的操作系统上运行。Tess4J是一个基于Tesseract OCR引擎的Java接口,可以用来识别图像中的文本,说白了,就是封装了它的API,让Java可以直接调用。 Tess

使用Spring Boot集成Spring Data JPA和单例模式构建库存管理系统

引言 在企业级应用开发中,数据库操作是非常重要的一环。Spring Data JPA提供了一种简化的方式来进行数据库交互,它使得开发者无需编写复杂的JPA代码就可以完成常见的CRUD操作。此外,设计模式如单例模式可以帮助我们更好地管理和控制对象的创建过程,从而提高系统的性能和可维护性。本文将展示如何结合Spring Boot、Spring Data JPA以及单例模式来构建一个基本的库存管理系统

laravel框架实现redis分布式集群原理

在app/config/database.php中配置如下: 'redis' => array('cluster' => true,'default' => array('host' => '172.21.107.247','port' => 6379,),'redis1' => array('host' => '172.21.107.248','port' => 6379,),) 其中cl

Laravel 面试题

PHP模块 PHP7 和 PHP5 的区别,具体多了哪些新特性? 性能提升了两倍 结合比较运算符 (<=>) 标量类型声明 返回类型声明 try…catch 增加多条件判断,更多 Error 错误可以进行异常处理 匿名类,现在支持通过new class 来实例化一个匿名类,这可以用来替代一些“用后即焚”的完整类定义 …… 了解更多查看文章底部链接 PHP7 新特性 为什么 PHP

Spring Boot集成PDFBox实现电子签章

概述 随着无纸化办公的普及,电子文档的使用越来越广泛。电子签章作为一种有效的身份验证方式,在很多场景下替代了传统的纸质文件签名。Apache PDFBox 是一个开源的Java库,可以用来渲染、生成、填写PDF文档等操作。本文将介绍如何使用Spring Boot框架结合PDFBox来实现电子签章功能。 准备工作 环境搭建:确保你的开发环境中安装了JDK 8或更高版本,并且配置好了Maven或

springboot+maven搭建的项目,集成单元测试

springboot+maven搭建的项目,集成单元测试 1.在pom.xml文件中引入单元测试的依赖包 <!--单元测试依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></depen

Java消息队列:RabbitMQ与Kafka的集成与应用

Java消息队列:RabbitMQ与Kafka的集成与应用 大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿! 在现代的分布式系统中,消息队列是实现系统间通信、解耦和提高可扩展性的重要组件。RabbitMQ和Kafka是两个广泛使用的消息队列系统,它们各有特点和优势。本文将介绍如何在Java应用中集成RabbitMQ和Kafka,并展示它们的应用场景。 消息队