-
分割create
添加之前查预备数据
store
添加
destroy
删除
update
更新
edit
编辑(更新之前查数据)
index
对应没有权限判断的列表数据,首页等
list
后台用户调取数据列表(一般有权限判断)
其他方法命名以这些单词为基础,例如:storeItem
,recordList
等等
study-banners.store
// banner
Route::post('study-banners/store', 'StudyBannersController@store')->name('study-banners.store');
Route::post('study-banners/destroy', 'StudyBannersController@destroy')->name('study-banners.destroy');
Route::post('study-banners/update', 'StudyBannersController@update')->name('study-banners.update');
Route::post('study-banners/edit', 'StudyBannersController@edit')->name('study-banners.edit');
Route::post('study-banners/list', 'StudyBannersController@list')->name('study-banners.list');
CardsController
ApisController
API RESOURCE
处理后返回例如:$activity = Activity::latest()->first();
$activity = new ActivityResource($activity);
return $this->success($activity);
return $this->success([
'no' => '20200702001164102',
]);
对应返回值如下:
// 单独数据体
{
"status": "success", // 成功返回固定值
"code": 200, // 固定 200
"data": { // 数据包
"no": "20200702001164102" // 具体数据
},
"msg": "操作成功", // 提示消息
"msgTime": 1500, // 提示消息展示时长,表示 1.5 秒
}
// 数据列表
{
"status": "success", // 成功返回固定值
"code": 200, // 固定 200
"data": { // 接口主体数据包
{
"id": 1,
"desc": "最高50%佣金,日入千元不是梦",
"name": "高额佣金",
"image": "https://card.xmfinger.com/frontend/icons/vip_im.png"
},
{
"id": 2,
"desc": "轻松拥有自己的线上商城",
"name": "商城功能",
"image": "https://card.xmfinger.com/frontend/icons/vip_shop.png"
},
},
"meta": { // 其他附带数据,用 meta 包含
"vip_privileges": [
{
"id": 1,
"desc": "最高50%佣金,日入千元不是梦",
"name": "高额佣金",
"image": "https://card.xmfinger.com/frontend/icons/vip_im.png"
},
{
"id": 2,
"desc": "轻松拥有自己的线上商城",
"name": "商城功能",
"image": "https://card.xmfinger.com/frontend/icons/vip_shop.png"
},
}
"msg": "操作成功", // 提示消息
"msgTime": 1500, // 提示消息展示时长,表示 1.5 秒
}
return $this->message('操作成功');
对应返回值如下:
{
"status": "success", // 成功返回固定值
"code": 200, // 固定 200
"msg": "操作成功", // 提示消息
"msgTime": 1500, // 提示消息展示时长,表示 1.5 秒
}
<?php
use App\Api\Helpers\PaginateHelper;
class AskLeavesController extends ApiController
{
use PaginateHelper;
public function index(Request $request)
{
// 从路由获取当前机构,大部分方法都要用
$institution = get_institution_from_route();
// 当前授权的用户
$user = $request->user();
// 查询数据库,获取分页数据
$res = AskLeave::query()
->where('child_id', $child->id)
->orderBy('id', 'desc')
->with('child', 'courseSetting', 'user')
->paginate(12);
// 处理成统一格式的分页数据
$res = $this->paginate($res, AskLeaveResrouce::class);
// 其他附带数据
$res['meta']['child'] = new ChildResource($child);
// 返回
return $this->res( $res);
}
}
返回示例:
{
"status": "success",
"code": 200,
"data": [
{
"id": 130,
"count": 1,
"leaave": 0,
"leave": 0,
"reason": "有事不能来",
"date": "2019-12-10 00:00:00",
"date_name": "2019-12-10 周二",
"user_name": "onetobigs",
"course_setting_name": "幼儿书法",
"created_at": "2020-07-06 14:30:43",
"updated_at": "2020-07-06 14:30:43",
"created_date": "2020-07-06 周一"
}
],
"links": {
"first": "http://xiaotq.demo/api/ask-leave/index?page=1",
"last": "http://xiaotq.demo/api/ask-leave/index?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"form": 1,
"last_page": 1,
"path": "http://xiaotq.demo/api/ask-leave/index",
"per_page": 12,
"to": 1,
"total": 1,
"child": {
"id": 34,
"name": "媛媛",
"avatar": "https://wx.qlogo.cn/mmopen/vi_32/QNPjGP8JnqNUUuxzgFw9UM3xk44WDB4OXmxPyEpCNzrWDE8ibVIDeEmNSWd556He3Se4oBoGuJvN1ThtAw1Vo6Q/132",
"en_name": "",
"gender": 2,
"gender_name": "女",
"birthday": "2019-12-05",
"school": "",
"first_letter": "Y",
"relation": "爸爸",
"type": 1,
"type_name": "常规学员",
"status": 0,
"status_name": "正常",
"tags": [],
"phone": "13055246008",
"address": "软件园三期A区06栋(厦门市集美区)",
"signing": true,
"check": false
}
},
"msg": "操作成功",
"msgTime": 1500,
"server_time": 1594017047,
"msgShow": false
}
error_msg('错误提示信息');
对应效果
{
"status": "error",
"code": 400,
"msg": "错误提示信息",
"msgTime": 1500,
"server_time": 1594017221,
"msgShow": false
}
composer global require squizlabs/php_codesniffer
dev
分支,提交前先拉取