推荐一个laravel极速完成增删改查的第三方包

2022-05-15 0 935

下面由Laravel教程栏目给大家推荐一个laravel极速完成增删改查的第三方包,希望对需要的朋友有所帮助!

推荐一个laravel极速完成增删改查的第三方包

推荐一个实用的laravel包https://github.com/osindex/LaravelControllerTrait

可以通过命令行直接生成Model、Controller和migrate文件,并且添加了很多常用的筛选过滤方法,不到一分钟就能写完简单的增删改查
特别是对查询的优化,基本不用单独加接口

laravel-controller-trait

install

composer require osi/laravel-controller-trait

useage

###artisan

php artisan trait:controllerphp artisan trait:model

###controller&&route

use Osi\\LaravelControllerTrait\\Traits\\ControllerBaseTrait; // traituse App\\Admin; //model fileclass AdminsController extends Controller{    use ControllerBaseTrait;    public function __construct(Admin $model)    {        $this->model = $model;        $this->resource = '\\Osi\\LaravelControllerTrait\\Resources\\Resource';        $this->collection = '\\Osi\\LaravelControllerTrait\\Resources\\Collection';        $this->functions = get_class_methods(self::class);    }}Route::resources(['admins' => 'AdminsController']);#以上完成,即提供了常规的增删改查方法#【1.10】新增批量更新post:api/admins/batchrequest()->all(): [    ['id'=>1,'field'=>'xxx','field2'=>xxx],    ['id'=>2,'field'=>'x2x','field2'=>x2x]]#【1.11】剥离基础返回类use Osi\\LaravelControllerTrait\\Traits\\ResponseBaseTrait; // trait 附带以下方法dataSuccesscreatedacceptednoContentbadRequestunauthorizedforbiddenunprocesableEtitysuccess

filter

/message?filter={"created_at":{"from":"2016-02-20","to":"2016-02-24 23:59:59"}, "id":{"operation":"not in", "value":[2,3,4]}}/message?filter={"user_id":{"operation":"in", "value":[null,2,3,4]}}/message?filter={"id":{"from":2,"to":5}}/message?filter={"id":{"to":5}} or /message?filter={"id":{"operation":"<=","value":5}}/message?filter={"updated_at":{"isNull":true}}/message?filter={"answer":{"operation":"like","value":"Partial search string"}}/message?filter={"answer":"Full search string"}/message?filter={"user.name":"asd"} # 关联搜索 whereHas/message?filter={"id":1}# 暂时只支持单字段排序/message?sort=id/message?sort=-id/message?sort=user.name# 关联搜索/message?expand=user response: { "id": 1, "message": "some message", "user_id": 1, ... "user": { "id": 1, "name": "Some username", ... } }# 关联搜索子集,获取特定字段/message?expand=archives,user.recordable:id/status# 【1.8】新增scope搜索//User Model<?php新增允许的filterScopes属性protected $filterScopes = ['QueryLike'];// laravel实现姓名或电话搜索public function scopeQueryLike($query, $param){    return $query->where(function ($querySec) use ($param) {        return $querySec->where('name', 'like', '%' . $param . '%')->orWhere('phone', 'like', '%' . $param . '%');    });}/user?filter={"QueryLike":2333}# 【1.9】新增JSON搜索(jsoncontains,jsonlength) ##注:目前仅有jsonlength 支持type属性/message?filter={"json->paramA":"233"}/message?filter={"json->array":{"operation":"jsonlength","type":">","value":5}}/message?filter={"json->array":{"operation":"jsoncontains","value":5}}# 【1.11】 filterExpand 用法## 一般我们使用expand对应with方法 如 `model->with('app')` === `?expand=app`因此 可以使用 filterExpand 完成 `model->with(['app'=>function($q) use($id){$q->where('id',$id)}])` 的类似方法/message?expand=app&filterExpand={'app.created_at': { 'operation': '>=', 'value': 'now()' },'app.id': 1}# 【2.0】 collection 集合增加筛选及分页方法#collect()->setFilterAndRelationsAndSort($request)->paginate((int) $request->pageSize ?? 15)集合的查询相对数据库较为简单 仅包括集合支持的相关方法 具体查阅以下函数setFilter

【2.1】batch批量更新修改

#原post:api/model/batchrequest()->all(): [    ['id'=>1,'field'=>'xxx','field2'=>xxx],    ['id'=>2,'field'=>'x2x','field2'=>x2x]]#新增兼容 data对象包裹request()->all(): [    'data'=>    [        ['id'=>1,'field'=>'xxx','field2'=>xxx],        ['id'=>2,'field'=>'x2x','field2'=>x2x]    ]]
添加"operation":"in"  对null的支持  "col":{"operation":"in", "value":[null,2,3,4]}

func

Don not code normal controller func.

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

【声明:根据2013年1月30日《计算机软件保护条例》2次修订第17条规定: 为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存 储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬! 鉴于此,也希望大家按此说明研究软件!】
本站所有源码尽量保证原汁原味,如有特殊情况会作出声明及标注,网站资源不做任何二次加密(原版加密除外,不影响程序使用的不会做解密处理),方便您更好的学习参考。 在您的能力范围内,为了大环境的良性发展,请尽可能的选择正版资源。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

即刻码站__国内靠谱的站长资源下载平台 php教程 推荐一个laravel极速完成增删改查的第三方包 https://www.jike1995.com/36402.html

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务