拼图小游戏增加排行榜

190 阅读1分钟

之前我们做的拼图小游戏,一直都没有增加排行榜这个功能,很多小游戏都有这个功能,今天我们就来增加下这个小功能。废话少说,下面直接开始。

1. 要在后台提供一个接口来显示排名靠前的数据。

(1)先建一个数据表用来存储用户最好成绩。登录服务器终端。

image.png

(2)进入后台项目的根目录。

image.png

(3)创建迁移工具文件

php think migrate:create UserScore

image.png

(4)在database/migrations 文件夹下找到刚才创建的迁移文件

20230630045005_user_score.php进行编辑


`     public function change()

    {

        $table  =  $this->table('user_score',array('engine'=>'MyISAM'));

        $table->addColumn('nickname','string',array('limit'=>15,'default'=>'','comment'=>'昵称'))

        ->addColumn('avatar', 'string',array('default'=>'','comment'=>'用户头像'))

        ->addColumn('openid', 'string',array('default'=>'','comment'=>'openid'))

        ->addColumn('score', 'string',array('default'=>'','comment'=>'分数'))

        ->addColumn('updated_at', 'datetime',array('default'=>0,'comment'=>'更新时间'))

        ->addColumn('created_at', 'datetime',array('default'=>0,'comment'=>'创建时间'))

        ->create();

    }`

 

(5)执行迁移工具 php think migrate:run

image.png

(6)在数据库里可以看到我们刚才创建的数据表了

image.png

2. (1)我们打开后台的项目。在model文件夹下新建一个UserScore模型文件

image.png

(2)增加rules和attrLabels方法


`<?php

declare (strict_types = 1);

namespace app\admin\model;

use quick\admin\http\model\Model;

/**

 * Class UserScore

 *

 *

 * @package app\admin\model

 */

class UserScore extends Model

{

    /**

     * 验证规则

     * @return array

     */

    protected function rules(): array

    {

        return [

            'id' => 'integer',

            'nickname' => 'require|max:255',

            'score' => 'require',

            'is_delete' => 'require|integer',

        ];

    }

 

 

    /**

     * @return array

     */

    protected function attrLabels(): array

    {

        return [

            'id' => 'id',

            'nickname' => '昵称',

            'avatar' => '头像',

            'openid' => 'openid',

            'score' => '分数',

            'updated_at' => '更新时间',

            'created_at' => '创建时间',

            'is_delete' => '删除状态,1已删除',

        ];

    } 

}`

  (2)打开api控制器,引入UserScore模型。

image.png

(3)增加addscore方法


`    /**

     * @AdminAuth(auth=false,menu=false,login=false,title="Index")

     */

    public function addscore(){

        try {

            $res = request();

           

            // 添加合适的验证逻辑

            $model = new UserScore();

            $model->nickname = $res['nickname'];

            $model->score = $res['score'];

            $model->openid = $res['openid'];

            $model->is_delete = 0;

            $model->save();

           

            return json([

                'code' => 0,

                'data' => $model->toArray(),

            ]);

        } catch (Exception $e) {

            // 处理异常,返回合适的错误信息

            return json([

                'code' => -1,

                'message' => $e->getMessage()

            ]);

        }

    }`

  (4)在接口测试工具测试下,没问题

image.png

好了,今天就先介绍到这里了。只是简单地添加了一个接口,没有做安全认证,后面有时间再加上。可能写的过程中还有很多不好的地方,希望大家能指出来,在此,谢谢大家