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

                                                       

下面由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:controller php artisan trait:model

###controller&&route

use OsiLaravelControllerTraitTraitsControllerBaseTrait; // trait use AppAdmin; //model file class AdminsController extends Controller {     use ControllerBaseTrait;      public function __construct(Admin $model)     {         $this->model = $model;         $this->resource = 'OsiLaravelControllerTraitResourcesResource';         $this->collection = 'OsiLaravelControllerTraitResourcesCollection';         $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】剥离基础返回类  use OsiLaravelControllerTraitTraitsResponseBaseTrait; // 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":"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/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

Don not code normal controller func.

以上就是推荐一个

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享