首页 > 其他分享 >040.CI4框架CodeIgniter,使用Response实现前后端分离并返回JSON

040.CI4框架CodeIgniter,使用Response实现前后端分离并返回JSON

时间:2024-08-31 14:26:07浏览次数:9  
标签:function return CodeIgniter get JSON CI4 php data public

01、BaseController.php代码如下:

<?php

namespace App\Controllers;

use CodeIgniter\Controller;
use CodeIgniter\HTTP\CLIRequest;
use CodeIgniter\API\ResponseTrait;
use CodeIgniter\HTTP\IncomingRequest;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;

/**
 * Class BaseController
 *
 * BaseController provides a convenient place for loading components
 * and performing functions that are needed by all your controllers.
 * Extend this class in any new controllers:
 *     class Home extends BaseController
 *
 * For security be sure to declare any new methods as protected or private.
 */
abstract class BaseController extends Controller
{
    //引用Response
    use ResponseTrait;

    /**
     * Instance of the main Request object.
     *
     * @var CLIRequest|IncomingRequest
     */
    protected $request;

    /**
     * An array of helpers to be loaded automatically upon
     * class instantiation. These helpers will be available
     * to all other controllers that extend BaseController.
     *
     * @var list<string>
     */
    protected $helpers = [];

    /**
     * Be sure to declare properties for any property fetch you initialized.
     * The creation of dynamic property is deprecated in PHP 8.2.
     */
    // protected $session;

    /**
     * @return void
     */
    public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
    {
        // Do Not Edit This Line
        parent::initController($request, $response, $logger);

        // Preload any models, libraries, etc, here.

        // E.g.: $this->session = \Config\Services::session();
    }

    public function get_url($aurl)
    {
        return base_url('public/index.php/') . $aurl;
    }

    public function get_respond($adata = '', $acode = '0', $amessage = 'success')
    {
        $response = [
            'data' => $adata,
            'code' => $acode,
            'message' => $amessage,
        ];
        return $this->respondCreated($data = $response);
    }
}

02、Login.php代码如下:

<?php namespace App\Controllers\Api\V1\Users;

use App\Controllers\BaseController;


//http://localhost/phmci4/public/index.php/api/v1/users/login
class Login extends BaseController
{

    public function index()
    {
        $data = array(
            'token' => 'token-admin',
        );
        return $this->get_respond($data);
    }

    //http://localhost/phmci4/public/index.php/api/v1/users/login/info
    public function info()
    {
        $data = array(
            'username' => 'token-admin',
            'roles' => ['admin'],
        );
        return $this->get_respond($data);
    }

    //http://localhost/phmci4/public/index.php/api/v1/users/login/code
    public function code()
    {
        $img_url = 'http://dummyimage.com/100x40/dcdfe6/000000.png&text=V3Admin';
        return $this->get_respond($img_url);
    }
}

03、结构如下:

 

标签:function,return,CodeIgniter,get,JSON,CI4,php,data,public
From: https://www.cnblogs.com/tianpan2019/p/18390232

相关文章

  • 039.CI4框架CodeIgniter,封装Model模型绑定数据库的封装
    01、ModelBase.php代码如下:<?phpnamespaceApp\Models;useCodeIgniter\Database\ConnectionInterface;useCodeIgniter\Model;useCodeIgniter\Validation\ValidationInterface;classModelBaseextendsModel{var$Db;function__construct(Conn......
  • python的py文件 如何在window和linux系统中 使用命令的方式执行 接收json参数 两者的
    1.在Python中,可以使用内置的sys模块来在Windows和Linux系统中接收命令行参数。使用sys.argv,它是一个列表,包含命令行参数。sys.argv[0]是脚本名,其余元素是命令行参数。示例代码:importsys#检查参数个数iflen(sys.argv)<2:print("请提供至少一个参数。")sys.......
  • 037.CI4框架CodeIgniter,使用Model模型绑定数据库表
    01、我们创建一个数据库,如下:CREATETABLE`user`(`id`int(20)NOTNULLAUTO_INCREMENT,`username`varchar(255)CHARACTERSETutf8COLLATEutf8_general_ciNULLDEFAULTNULL,`userpassword`varchar(255)CHARACTERSETutf8COLLATEutf8_general_ciNULLDE......
  • nodejs实现将json转化为excel文件
    本文使用node.js实现将json数据转换导出为excel文件。一、安装json2xls库npmijson2xls二、封装转换方法新增jsonToExcel.js文件,该文件用于将json数据(对象数组)转换为excel文件,文件内容如下:constfs=require('fs')//引入文件系统模块constjson2xls=require('json2......
  • appsettins.json 复制到输出文件夹 CopyToOutpuDirectory 配置文件 csproj
    复制配置文件到输出文件夹<ItemGroup><NoneUpdate="appsettings.json"><CopyToOutputDirectory>Always</CopyToOutputDirectory></None><NoneUpdate="nlog.config"CopyToOutputDirectory="Always&qu......
  • JSON的概念及应用场景举例
    JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,它采用易于人阅读和机器解析的纯文本形式来表示结构化的数据。JSON基于ECMAScript(即JavaScript)的一个子集,但其语法和数据结构独立于任何特定的编程语言,因此被广泛应用于各种编程环境和平台之间进行数据交换。JSON......
  • C/C++实现JSON格式数据解析
    参考文章推荐以下几篇,针对Cjson的应用写的很详细,感谢!!!https://blog.csdn.net/xiaopengX6/article/details/104629606https://liang.blog.csdn.net/article/details/86605234运用场景在做C的项目时,对方通过TCP套接字将内容按照帧头+帧体的格式发送过来,其中帧体的内容是JSON格式......
  • postman 发送json数据时,数据为随机数(雪花算法生成)
    要在Postman中发送由雪花算法计算出的随机数,您可以通过在预请求脚本中使用JavaScript代码来实现。首先,您需要添加一个script部分模拟雪花算法生成随机数的函数。可以在请求的"Pre-requestScript"选项卡中添加以下代码:functiongenerateRandomNumber(){constepoch=16094......
  • Go语言中JSON标签的用法与技巧
    在Go语言中,JSON标签(JSONtags)是用来指定结构体字段在序列化为JSON时的名称和行为的。JSON标签通常写在结构体字段的后面,用反引号(`)括起来。以下是一些常用的JSON标签:json:"field_name":指定JSON对象中的字段名。例如:typePersonstruct{Namestring`json:"name"`Age......
  • Flask-RESTFul 之 RESTFul 的响应处理 之定制返回的 json格式
    Flask-RESTFul之RESTFul的响应处理之定制返回的json格式使用`marshal_with`和`fields`定制响应结构重写Flask的`jsonify`方法在返回前手动构造JSON使用Flask-RESTful的`Response`类自定义输出处理器结论在Flask-RESTful中,如果你......