thinkphp8响应,模型获取器、修改器、搜索器--php进阶篇

        最简单的响应输出是直接在路由闭包或者控制器操作方法中返回一个字符串

Route::get('hello/:name', function ($name) {

        return 'Hello,' . $name . '!';

});

        控制器操作方法响应返回如下,展示下输出一个JSON数据给客户端

<?php

namespace app\mp_toutiao\controller;

class Index

{

        public function hello()
    {
        $data = ['name' => 'thinkphp', 'status' => '1'];
        return json($data);
    }

}

        默认是输出Html输出,直接return就是输出Html。使用json()方法是将数据转为json格式。

        模型获取器,修改器,搜索器

<?php

namespace app\mp_toutiao\model;

use think\Model;


class User extends Model {

    /*
     * 设置name字段修改器
     */
    public function setNameAttr($value)
    {
        return strtolower($value);
    }
    

     /*
     * 定义数据表中不存在的字段
     */
    public function getStatusTextAttr($value,$data)
    {
        $status = [-1=>'删除',0=>'禁用',1=>'正常',2=>'待审核'];
        return $status[$data['status']];
    }
    

    /*
     * 定义name字段搜索器
     */
    public function searchNameAttr($query, $value, $data)
    {
        $query->where('name','like', $value . '%');
    }
    

    /*
     * 定义create_time字段搜索器
     */
    public function searchCreateTimeAttr($query, $value, $data)
    {
        $query->whereBetweenTime('create_time', $value[0], $value[1]);
    }    
}

        调用模型获取器,修改器,搜索器

<?php

namespace app\mp_toutiao\controller;

use app\mp_toutiao\model\User;

class Index

{

        public function testDb()
        {

                //调用获取器

                $user = User::find(1);
                echo $user->status_text;

                //获取全部原始数据
                dump($user->getData());

                //调用修改器

                $user->name     = 'THINKPHP';
                $user->email    = 'ThinkPhp@qq.com';
                echo $user->name;
                echo $user->email;

                //调用搜索器

                $list = User::withSearch(['name','create_time'], [
                        'name'            =>    'think',
                        'create_time'    =>    ['2024-8-1','2025-8-5'],
                        'status'        =>    1
                    ])
                ->select();
                dump($list);

        }

}

        dump是个助手函数,浏览器友好的变量输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值