最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • laravel用户详情及封禁和启用用户api

    正文概述 转载于:掘金(陆小天奥利给)   2021-08-24   207

    这是我参与8月更文挑战的第24天,活动详情查看:8月更文挑战

    一、用户详情接口

    1.1 配置路由模型

    app/Http/Kernel.php中增加代码:

    'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
    

    laravel用户详情及封禁和启用用户api

    routes/admin.php中添加这个中间件: laravel用户详情及封禁和启用用户api

    1.2 用户详情控制器方法

        /**
         * 用户详情
         */
        public function show(User $user)
        {
            return $this->response()->item($user, new UserTransformer());
        }
    

    laravel用户详情及封禁和启用用户api

    1.3 效果

    laravel用户详情及封禁和启用用户api 可以看到这里给我们返回了data再包含一个对象,获取用户详情的我们只想要一个对象,里面是信息的话,就可以使用一个插件liyu/dingo-serializer-switch。 运行命令 composer require liyu/dingo-serializer-switchlaravel用户详情及封禁和启用用户api 进行安装。 这里给出了用法: laravel用户详情及封禁和启用用户api 修改routes/admin.phplaravel用户详情及封禁和启用用户api

    效果: laravel用户详情及封禁和启用用户api 可以看到返回就是一个对象了。

    二、封禁和启用用户接口

    2.1 用户表增加字段

    1、生成迁移文件

    运行命令生成迁移文件php artisan make:migration add_is_locked_to_users_table --table=users laravel用户详情及封禁和启用用户api 2021_08_09_181147_add_is_locked_to_users_table.php写入代码:

    <?php
    
    use Illuminate\Database\Migrations\Migration;
    use Illuminate\Database\Schema\Blueprint;
    use Illuminate\Support\Facades\Schema;
    
    class AddIsLockedToUsersTable extends Migration
    {
        /**
         * Run the migrations.
         *
         * @return void
         */
        public function up()
        {
            Schema::table('users', function (Blueprint $table) {
                $table
                    ->tinyInteger('is_locked')
                    ->default(0)
                    ->after('email') // after 将is_locked放在email字段后面
                    ->comment('用户禁用状态: 0启用,1禁用');
            });
        }
    
        /**
         * Reverse the migrations.
         *
         * @return void
         */
        public function down()
        {
            Schema::table('users', function (Blueprint $table) {
                //
            });
        }
    }
    

    2、执行迁移文件

    运行命令php artisan migrate laravel用户详情及封禁和启用用户api

    3、效果

    laravel用户详情及封禁和启用用户api 可以看到用户表这里已经插入了is_locked字段,并且在email字段后面。

    2.2 控制器方法

    1、方法

        /**
         * 禁用用户和启用用户
         */
        public function lock(User $user)
        {
            $user -> is_locked = $user ->is_locked== 0 ? 1 : 0;
            $user -> save();
            return $this->response()->noContent(); // 更新直接返回无响应的状态
        }
    

    laravel用户详情及封禁和启用用户api

    2、效果

    laravel用户详情及封禁和启用用户api laravel用户详情及封禁和启用用户api

    三、修改登陆

    3.1 将锁定的用户禁止登陆。

    登陆控制器LoginController.php

        /**
         * 登陆
         */
        public function login(LoginRequest $request)
        {  
            $credentials = request(['email', 'password']);
    
            if (!$token = auth('api')->attempt($credentials)) {
                return $this->response()->errorUnauthorized();
            }
    
            // 检查用户信息
            $user = auth('api')->user();
            if ($user -> is_locked == 1) {
                return $this->response->errorForbidden('用户被锁定');
            }
            return $this->respondWithToken($token);
        }
    

    laravel用户详情及封禁和启用用户api

    3.2 效果

    laravel用户详情及封禁和启用用户api


    起源地 » laravel用户详情及封禁和启用用户api

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元