真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

laravel實現極速完成增刪改查的第三方包

小編給大家分享一下laravel實現極速完成增刪改查的第三方包,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯專注于相山企業(yè)網站建設,自適應網站建設,商城網站制作。相山網站建設公司,為相山等地區(qū)提供建站服務。全流程按需策劃,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯專業(yè)和態(tài)度為您提供的服務

推薦一個實用的laravel包https://github.com/osindex/LaravelControllerTrait

可以通過命令行直接生成Model、Controller和migrate文件,并且添加了很多常用的篩選過濾方法,不到一分鐘就能寫完簡單的增刪改查
特別是對查詢的優(yōu)化,基本不用單獨加接口

laravel-controller-trait

install

composer require osi/laravel-controller-trait

useage

###artisan

php artisan trait:controller
php artisan trait:model

###controller&&route

use Osi\LaravelControllerTrait\Traits\ControllerBaseTrait; // trait
use App\Admin; //model file
class 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']);
#以上完成,即提供了常規(guī)的增刪改查方法

#【1.10】新增批量更新
post:api/admins/batch
request()->all(): [
    ['id'=>1,'field'=>'xxx','field2'=>xxx],
    ['id'=>2,'field'=>'x2x','field2'=>x2x]
]

#【1.11】剝離基礎返回類

use Osi\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 Model
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.

以上是“l(fā)aravel實現極速完成增刪改查的第三方包”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯行業(yè)資訊頻道!


網站題目:laravel實現極速完成增刪改查的第三方包
文章鏈接:http://weahome.cn/article/ggpeci.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部