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

2025-07-06 11:15:03 4
  • 收藏
  • 管理
    下面由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:controller php artisan trait:model ###controller&&route 复制useOsi\\\\LaravelControllerTrait\\\\Traits\\\\ControllerBaseTrait;// traituseApp\\\\Admin;//model fileclassAdminsControllerextendsController{useControllerBaseTrait;publicfunction __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/batch request()->all():[[id=>1,field=>xxx,field2=>xxx],[id=>2,field=>x2x,field2=>x2x]]#【1.11】剥离基础返回类useOsi\\\\LaravelControllerTrait\\\\Traits\\\\ResponseBaseTrait;// trait 附带以下方法 dataSuccess created accepted noContent badRequest unauthorized forbidden unprocesableEtity success 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 Modelwhere(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/batch request()->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 复制Donnot code normal controller func.
    上一页:推荐一些VSCode的好用插件 下一页:推荐5个好用的免费自动化在线营销工具
    全部评论(0)