联系我们

微信扫描上方二维码

需要精通PHP程序开发的人员

按照默认CMS的返回数据是非常多的而且非常杂乱,在实际app项目中是不规范的,这时我们可以运用自定义回调方法来对其进行规范,如下图所示:

image.png


定义http回调方法

打开或新建文件/dayrui/My/Library/Http.php,这个文件专门是定义回调方法的

<?php namespace My\Library;

class Http extends \Phpcmf\Library\Http
{

    //// 上面是系统自带的

    /// 下面是自己加的+++++++++++

    public function news_list_data($data) {
    
        $rt = [];
        // 这里根据项目的$data输出格式来定义PHP的数据写法,
        // 每个接口的写法几乎不一样,下面是测试例子
        if ($data) {
            foreach ($data as $t) {
                $rt[] = [
                    'title' => $t['title'], // 标题
                    'id' => $t['id'], // id号
                    'catname' => dr_cat_value('news', $t['catid'], 'name'), // news模块的当前内容栏目名称
                    'thumb' => dr_thumb($t['thumb'], 200, 200), // 图片id转换为地址
                    'updatetime' => dr_date($t['_updatetime'], 'Y-m-d H:i:s'), // 时间转换
                ];
            }
        }
        
        return $rt;
    }
    
    // 上面是自己加的+++++++++++
    
     //// 下面是系统自带的
}

其中,news_list_data就是方法名称,$data是传入的返回数组,需要你手动格式化显示;

news_list_data本函数用于新闻news模块的列表数据,我的app需要返回:标题、id、图片、时间,这几个字段


千万不要把系统自带的代码删了


上面就定义好了,app请求数据就不会返回全部的查询结果

image.png





回调示例写法


1、搜索列表的写法

请求地址:&api_call_function=my_test&s=book&c=search

回调写法:my_test2

public function my_test2($data) {
    $rt = [];
    if ($data['list']) {
        foreach ($data['list'] as $t) {
            $rt[] = [
                'title' => $t['title'], // 标题
                'id' => $t['id'],// id号
                'catname' => dr_cat_value('news', $t['catid'], 'name'), // news模块的当前内容栏目名称
                'thumb' => dr_thumb($t['thumb'], 200, 200), // 图片id转换为地址
                'updatetime' => dr_date($t['_updatetime'], 'Y-m-d H:i:s'), // 时间转换
            // 如果想调用更多的字段可以写在这个数组里面
            ];
        }
    }

    return $rt;
}


2、内容详情的写法

请求地址:&api_call_function=my_test&s=book&c=show&id=1

回调写法:my_test

public function my_test($data) {
    $rt = [
        'title' => $data['title'],// 标题
        'id' => $data['id'],// id号
        'thumb' => dr_thumb($data['thumb'], 200, 200),// 图片id转换为地址
        'catname' => dr_cat_value('news', $data['catid'], 'name'), // news模块的当前内容栏目名称
        'updatetime' => dr_date($data['_updatetime'], 'Y-m-d H:i:s'),// 时间转换
            // 如果想调用更多的字段可以写在这个数组里面
    ];
    return $rt;
}


3、栏目详情的写法

请求地址:&api_call_function=my_test&s=book&c=category&id=1

回调写法:my_test3

public function my_test3($data) {
        $rt = [
            'name' => $data['name'],// 栏目名称
            'id' => $data['id'],// id号
            'thumb' => dr_thumb($data['thumb'], 200, 200),// 图片id转换为地址
            'content' => $data['content'],
            // 如果想调用更多的字段可以写在这个数组里面
        ];
        return $rt;
    }




本文地址:https://www.xunruicms.com/doc/351.html