https://www.kancloud.cn/manual/thinkphp5/138669
改了类型还是不起作用
这个字段在mysql中定义的是date类型
查看Model.php文件 thinkphp/library/think/Model.php
走到else报错的, 是数据类型错误的问题
application/index/model/Contract.php
因为thinkphp5默认timestamp是 integer类型, 需要改为date型
在自己定义的模型中添加这几行
protected $autoWriteTimestamp = 'date';
protected $type = [
'ARM_FromDate' => 'datetime:Y-m-d',
'ARM_ToDate' => 'datetime:Y-m-d'
];
这样就走到if, 而不是else分支
再次访问接口 ok
想实现Laravel一样的model created_at, updated_at都是datetime类型 需要如下配置:
application/index/model/Contract.php
<?php
namespace app\index\model;
use think\Model;
use think\Config;
class Contract extends Model {
protected $table = 'ARM_Contract';
const PRIMARY_KEY = 'ARM_ACID';
protected $pk = self::PRIMARY_KEY;
protected $connection = [];
protected $field = [
self::PRIMARY_KEY, 'ARM_AGID', 'ARM_FromDate', 'ARM_ToDate', 'ARM_Status',
// 'ARM_Contact', 'ARM_Memorandum',
'ARM_DividePercent',
// 'ARM_District',
'ARM_GradeName', // 学段03高02初
];
// 输出的字段 防止输出所有的字段
protected $visible = [
self::PRIMARY_KEY, 'ARM_AGID', 'ARM_Status', 'ARM_GradeName', 'ARM_FromDate', 'ARM_ToDate'
];
protected $autoWriteTimestamp = 'date';
protected $type = [
'ARM_FromDate' => 'datetime:Y-m-d',
'ARM_ToDate' => 'datetime:Y-m-d'
];
public function __construct($data = []) {
$this->connection = Config::get('db_config1');
parent::__construct($data);
}
public static function getEffectiveEntries() {
$today = date('Y-m-d', time());
$list = self::all([
'ARM_Status' => 1,
'ARM_ToDate' => ['gt', $today],
'ARM_FromDate' => ['lt', $today],
'ARM_DividePercent' => ['neq', 0]
]);
return $list;
}
// @ref: https://www.kancloud.cn/manual/thinkphp5/135176
public function getChunk() {
$today = date('Y-m-d', time());
return $this->where('ARM_Status', '=', 1)
->where('ARM_ToDate', '>', $today)
->where('ARM_FromDate', '<', $today)
->where('ARM_DividePercent', '<>', 0)
->chunk(100, function($contracts) {
foreach($contracts as $contract) {
// ...
}
});
}
}
application/index/controller/Contract.php
<?php
/**
* Created by PhpStorm.
* User: mingzhanghui
* Date: 7/24/2019
* Time: 15:56
*/
namespace app\index\controller;
use app\index\model\Attorney;
use think\response\Json;
class Contract extends Json {
// http://192.168.4.157:8030/index/contract/index
/**
* 列出所有有效的合同
*/
public function index() {
$contracts = \app\index\model\Contract::getEffectiveEntries();
foreach ($contracts as &$contract) {
/** @var $attoney */
$attoney = Attorney::get(['ARM_AIGID' => $contract->ARM_AGID]);
$contract->ARM_LegalPerson = $attoney->ARM_LegalPerson;
}
return $contracts;
}
}
相关文章:https://blog.csdn.net/fareast_mzh/article/details/97145296
对于api接口服务要把默认的输出类型改为json
'default_return_type' => 'json',