1. 资源控制器和路由
创建一个不包含html页面api控制器
php artisan make:controller UserController --api
创建api资源控制器后, 在route/web.php配置相关的api资源路由
Route::apiResource('users', 'UserController');
HTTP类型 | 路由API | 控制器方法 | 路由命令 | 描述 |
GET | users | index() | users.index | 获取数据列表 |
POST | users | store() | users.store | 创建页的接收处理 |
GET | users/{user} | show() | users.show | 获取一条数据 |
PUT/PATCH | users/{user} | update() | users.update | 从编辑页中接收处理 |
DELETE | users/{user} | destroy() | users.destroy | 删除一条数据 |
二. 标准的API返回
class BaseController extends Controller
{
protected function create($code, $msg, $data)
{
$result = [
'code' => $code,
'msg' => $msg,
'data' => $data,
];
return response($result, $code);
}
}
// 使用
继承BaseController
$this->create()
2.创建表单验证类
php artisan make:request Auth/RegisterRequest
1. 注册时密码进行加密操作
// 'password' => bcrypt('123123'); // 这是之前用的, 但是发现在登录的时候密码不对,就是bcrypt的加密和登录的加密对不上, 后来换成了Hash::make()加密
if ($request->all()) {
$res = $request->all();
$data = [
'username' => $res['username'],
'email' => $res['email'],
'password' => \Hash::make($res['password'])
];
$uses = Users::create($data);
return response()->json(['code' => '200', 'msg' => "添加成功"]);
}
return $request;
2. 处理校验不对, 返回格式问题, 在新建的BaseRequestphp中加入
use Illuminate\Contracts\Validation\Validator;
public function failedValidation(Validator $validator)
{
echo json_encode($data);exit;
//echo response()->json([
// 'msg' => $validator->errors()->all()
//])->setEncodingOptions(JSON_UNESCAPED_UNICODE);
// response()->json(['msg'=>'error','code'=>'500','data'=>$error[0]], 500);
// throw new HttpResponseException(response()->json(['msg'=>'error','code'=>'500','data'=>$error[0]], 500));
// echo json_encode(array(
// 'success' => false,
// 'message' => '处理错误',
// 'errors' => throw new HttpResponseException(response()->json(['msg'=>'error','code'=>'500','data'=>$error[0]], 500));
// ));
}
备注:
1. 时区: 'Asia/Shanghai'
2.auth()命令
auth()->attempt() 登录验证
auth()->check 判断是否登录,有没有session缓存
auth()->loginout() 清除缓存 退出登录时使用
auth()->user() 获取当前认证用户