Laravel学习-API学习

1. 资源控制器和路由

创建一个不包含html页面api控制器

php artisan make:controller UserController --api

创建api资源控制器后, 在route/web.php配置相关的api资源路由

Route::apiResource('users', 'UserController');
HTTP类型路由API控制器方法路由命令描述
GETusersindex()users.index获取数据列表
POSTusersstore()users.store创建页的接收处理
GET        users/{user}show()users.show获取一条数据
PUT/PATCHusers/{user}update()users.update从编辑页中接收处理
DELETEusers/{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()        获取当前认证用户

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值