sukohi / flexible-resource
一个Laravel包,允许您灵活地生成资源。
2.0.0
2020-05-11 21:45 UTC
Requires
- illuminate/support: ^5.7|^6.0|^7.0
README
一个Laravel包,允许您灵活地生成资源。
此包在L6.x下维护。
安装
composer require sukohi/flexible-resource:2.*
准备
设置FlexibleResourceTrait
如下。
use Sukohi\FlexibleResource\Traits\FlexibleResourceTrait;
class ResourceController extends Controller
{
use FlexibleResourceTrait;
同时设置控制器的路由。
Route::get('resource', 'ResourceController@get');
使用方法
基本用法
向您的控制器添加私有方法。
class ResourceController extends Controller
{
use FlexibleResourceTrait;
private function userTypes() {
return [
1 => 'admin',
2 => 'owner',
3 => 'user'
];
}
在这种情况下,您可以通过以下URL获取userTypes
。
https://example.com/resource?keys=userTypes
示例
{
"userTypes":{
"1":"admin",
"2":"owner",
"3":"user"
}
}
多种方法
当然,您也可以设置多个方法,如下所示。
class ResourceController extends Controller
{
use FlexibleResourceTrait;
private function userTypes() {
// ...
}
private function userNames() {
// ...
}
在这种情况下,您需要使用|
将一些键连接起来。
https://example.com/resource?keys=userTypes|userNames
带参数
此包支持每个方法的参数。如果您想调用需要3个参数的方法,请设置参数。
private function yourMethod($value_1, $value_2, $value_3) {
// ...
}
供您参考,您可以设置默认值。
private function yourMethod($value_1 = null, $value_2 = 10, $value_3 = 1000) {
// ...
}
URL
https://example.com/resource?keys=userTypes:value1,value2,value3
转换为集合
如果您的控制器已经有一个名为userTypes
的方法,则userTypeCollection
也将自动可用。
在这种情况下,资源数据将像这样转换为集合。
{
"userTypeCollection":[
{"key":1, "value":"admin"},
{"key":2, "value":"owner"},
{"key":3, "value":"user"}
]
}
此外,您还可以通过$auto_collections
更改键。
class ResourceController extends Controller
{
protected $auto_collections = [
'userTypes' => ['id' => 'type']
];
因此,资源数据如下。
{
"userTypeCollection":[
{"id":1, "type":"admin"},
{"id":2, "type":"owner"},
{"id":3, "type":"user"}
]
}
或者*
也是默认选项。
class ResourceController extends Controller
{
protected $auto_collections = [
'*' => ['value' => 'text']
];
与Vue.js一起使用
如果您想在Vue.js中获取资源数据,则有一个专门的包v-flexible-resource可供使用。
许可证
此包根据MIT许可证授权。
版权所有2018 Sukohi Kuhoh