• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 推荐一个laravel极速完成增删改查的第三方包

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

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了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.


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • laravel与thinkphp之间的区别与优缺点
  • 说说在Laravel中怎么执行Shell命令 ?
  • Laravel中用Observer事件致Redis队列异常问题
  • 手把手带你使用Vue + Laravel开发一个简单的 CRUD 应用
  • 分享个人推荐的Laravel或其它框架的编程规范
  • Laravel中三种中间件的作用
  • 解决Laravel使用laravel-excel扩展包(maatwebsite/excel)导入报错问题
  • 分享一个顺丰同城配送的扩展包并在laravel中使用
  • 介绍Laravel8路由模块新增missing方法
  • 解析如何进行Laravel表单验证分层设计和验证场景应用

相关文章

  • 2022-04-29Photoshop绘制立体效果的紫色心形宝石
  • 2022-04-29PS+AI设计制作复古的霓虹灯字体效果教程
  • 2022-04-29PHP中如何利用define定义常量
  • 2022-04-29为网站选择一个适当的DMOZ目录
  • 2022-04-29ThinkPHP怎么使用curl实现远端数据调取
  • 2022-04-29DEDECMS让广告延时加载,提高网页打开速度
  • 2022-04-29Photoshop制作立体有机玻璃文字效果
  • 2022-04-29CentOS7 MySQL怎么进行定时备份
  • 2022-04-29【jquery】ajax 请求成功后新开窗口被拦截解决方法
  • 2022-04-29防止SyntaxHighlighter.js的代码高亮时闪一下的解决方法

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • Js中json字符串怎样转json对象
    • 解决PHPstudy V8.0打开phpMyAdmin显示错误问题
    • JS判断当前浏览器是否是微信端
    • vue2&vue3数据响应式原理分析及手动实现(实例详解)
    • 宝塔面板如何屏蔽禁止某个IP(IP段)访问
    • PhotoShop CS6制作逼真动物皮毛立体文字特效教程
    • PHP中$_SESSION获取不到值怎么办
    • Photoshop制作油漆溢出特效的艺术字教程
    • 详解在TP中怎么引入ThinkWechat.php并打印日志
    • 浅析小程序怎么动态制作小程序码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有