PHP程序里面
使用开发者工具创建的插件,编辑数据页面,我用了 字段控件代码

但是保存的时候不成功,在哪个文件格式化下时间,
public function edit() {
$id = \Phpcmf\Service::L('input')->get('id');
$data = \Phpcmf\Service::M('order', 'mqpay')->get($id);
$field = [
'paytime' => array (
'name' => '支付时间',
'fieldname' => 'paytime',
'ismain' => '1',
'fieldtype' => 'Date',
'ismember' => '1',
),
'status' => array (
'name' => '支付时间',
'fieldname' => 'status',
'ismain' => '1',
'fieldtype' => 'Radio',
'ismember' => '1',
'setting' => array (
'option' => array (
'options' => '未支付|inprogress
已过期|expired
已支付未通知|paid
已完成|settled
通知失败|unsettled',
),
),
),
];
\Phpcmf\Service::V()->assign([
'paytimefield' => dr_fieldform($field['paytime'], $data['paytime']),
'statusfield' => dr_fieldform($field['status'], $data['status']),
]);
list($tpl) = $this->_Post(intval(\Phpcmf\Service::L('input')->get('id')));
\Phpcmf\Service::V()->display($tpl);
<?php namespace Phpcmf\Controllers\Admin; /* * * * 本TableDemo的语法参考: http://help.phpcmf.net/445.html * * */ class Order extends \Phpcmf\Table { public function __construct(...$params) { parent::__construct(...$params); // 表单显示名称 $this->name = dr_lang('订单管理'); // 模板前缀(避免混淆) $this->tpl_prefix = 'order_'; // 用于表储存的字段,后台可修改的表字段 $field = array ( 'id' => array ( 'name' => '订单号', 'fieldname' => 'id', ), ); // 初始化数据表 $this->_init([ 'table' => 'pay_order', // (不带前缀的)表名字 'field' => $field, // 可查询的字段 'order_by' => 'id desc', // 列表排序,默认的排序方式 'date_field' => 'createtime', // 按时间段搜索字段,没有时间字段留空 ]); // 把公共变量传入模板 \Phpcmf\Service::V()->assign([ // 搜索字段 'field' => $field, 'is_time_where' => $this->init['date_field'], // 后台的菜单 'menu' => \Phpcmf\Service::M('auth')->_admin_menu( [ $this->name => [APP_DIR.'/'.\Phpcmf\Service::L('Router')->class.'/index', 'fa fa-code'], '添加' => [APP_DIR.'/'.\Phpcmf\Service::L('Router')->class.'/add', 'fa fa-plus'], '修改' => ['hide:'.APP_DIR.'/'.\Phpcmf\Service::L('Router')->class.'/edit', 'fa fa-edit'], ]) ]); } // 查看列表 public function index() { list($tpl) = $this->_List(); \Phpcmf\Service::V()->display($tpl); } // 添加内容 public function add() { list($tpl) = $this->_Post(0); \Phpcmf\Service::V()->display($tpl); } // 修改内容 public function edit() { $id = \Phpcmf\Service::L('input')->get('id'); $data = \Phpcmf\Service::M('order', 'mqpay')->get($id); $field = [ 'paytime' => array ( 'name' => '支付时间', 'fieldname' => 'paytime', 'ismain' => '1', 'fieldtype' => 'Date', 'ismember' => '1', ), 'status' => array ( 'name' => '支付时间', 'fieldname' => 'status', 'ismain' => '1', 'fieldtype' => 'Radio', 'ismember' => '1', 'setting' => array ( 'option' => array ( 'options' => '未支付|inprogress 已过期|expired 已支付未通知|paid 已完成|settled 通知失败|unsettled', ), ), ), ]; \Phpcmf\Service::V()->assign([ 'paytimefield' => dr_fieldform($field['paytime'], $data['paytime']), 'statusfield' => dr_fieldform($field['status'], $data['status']), ]); list($tpl) = $this->_Post(intval(\Phpcmf\Service::L('input')->get('id'))); \Phpcmf\Service::V()->display($tpl); } // 删除内容 public function del() { $this->_Del( \Phpcmf\Service::L('Input')->get_post_ids(), function($rows) { // 删除前的验证 return dr_return_data(1, 'ok', $rows); }, function($rows) { // 删除后的处理 return dr_return_data(1, 'ok'); }, \Phpcmf\Service::M()->dbprefix($this->init['table']) ); } /** * 获取内容 * $id 内容id,新增为0 * */ protected function _Data($id = 0) { $row = parent::_Data($id); // 这里可以对内容进行格式化显示操处理 return $row; } // 格式化保存数据 protected function _Format_Data($id, $data, $old) { if (!$id) { // 当提交新数据时,把当前时间插入进去 //$data[1]['inputtime'] = SYS_TIME; } return $data; } // 保存内容 protected function _Save($id = 0, $data = [], $old = [], $func = null, $func2 = null) { $data = \Phpcmf\Service::L('input')->post('data'); return parent::_Save($id, $data, $old, function($id, $data, $old){ // 验证数据 /* if (!$data['title']) { return dr_return_data(0, '标题不能为空!', ['field' => 'title']); }*/ // 保存之前执行的函数,并返回新的数据 if (!$id) { // 当提交新数据时,把当前时间插入进去 //$data['inputtime'] = SYS_TIME; } return dr_return_data(1, null, $data); }, function ($id, $data, $old) { // 保存之后执行的动作 }); } }官方研发技术-罗老师<?php namespace Phpcmf\Controllers\Admin; /* * * * 本TableDemo的语法参考: http://help.phpcmf.net/445.html * * */ class Order extends \Phpcmf\Table { public function __construct(...$params) { parent::__construct(...$params); // 表单显示名称 $this->name = dr_lang('订单管理'); // 模板前缀(避免混淆) $this->tpl_prefix = 'order_'; // 用于表储存的字段,后台可修改的表字段 $field = array ( 'id' => array ( 'name' => '订单号', 'fieldname' => 'id', ), ); // 初始化数据表 $this->_init([ 'table' => 'pay_order', // (不带前缀的)表名字 'field' => $field, // 可查询的字段 'order_by' => 'id desc', // 列表排序,默认的排序方式 'date_field' => 'createtime', // 按时间段搜索字段,没有时间字段留空 ]); // 把公共变量传入模板 \Phpcmf\Service::V()->assign([ // 搜索字段 'field' => $field, 'is_time_where' => $this->init['date_field'], // 后台的菜单 'menu' => \Phpcmf\Service::M('auth')->_admin_menu( [ $this->name => [APP_DIR.'/'.\Phpcmf\Service::L('Router')->class.'/index', 'fa fa-code'], '添加' => [APP_DIR.'/'.\Phpcmf\Service::L('Router')->class.'/add', 'fa fa-plus'], '修改' => ['hide:'.APP_DIR.'/'.\Phpcmf\Service::L('Router')->class.'/edit', 'fa fa-edit'], ]) ]); } // 查看列表 public function index() { list($tpl) = $this->_List(); \Phpcmf\Service::V()->display($tpl); } // 添加内容 public function add() { list($tpl) = $this->_Post(0); \Phpcmf\Service::V()->display($tpl); } // 修改内容 public function edit() { $id = \Phpcmf\Service::L('input')->get('id'); $data = \Phpcmf\Service::M('order', 'mqpay')->get($id); $field = [ 'paytime' => array ( 'name' => '支付时间', 'fieldname' => 'paytime', 'ismain' => '1', 'fieldtype' => 'Date', 'ismember' => '1', ), 'status' => array ( 'name' => '支付时间', 'fieldname' => 'status', 'ismain' => '1', 'fieldtype' => 'Radio', 'ismember' => '1', 'setting' => array ( 'option' => array ( 'options' => '未支付|inprogress 已过期|expired 已支付未通知|paid 已完成|settled 通知失败|unsettled', ), ), ), ]; \Phpcmf\Service::V()->assign([ 'paytimefield' => dr_fieldform($field['paytime'], $data['paytime']), 'statusfield' => dr_fieldform($field['status'], $data['status']), ]); // 初始化数据表 $this->_init([ 'table' => 'pay_order', // (不带前缀的)表名字 'field' => $field, // 可查询的字段 'order_by' => 'id desc', // 列表排序,默认的排序方式 'date_field' => 'createtime', // 按时间段搜索字段,没有时间字段留空 ]); list($tpl) = $this->_Post(intval(\Phpcmf\Service::L('input')->get('id'))); \Phpcmf\Service::V()->display($tpl); } // 删除内容 public function del() { $this->_Del( \Phpcmf\Service::L('Input')->get_post_ids(), function($rows) { // 删除前的验证 return dr_return_data(1, 'ok', $rows); }, function($rows) { // 删除后的处理 return dr_return_data(1, 'ok'); }, \Phpcmf\Service::M()->dbprefix($this->init['table']) ); } /** * 获取内容 * $id 内容id,新增为0 * */ protected function _Data($id = 0) { $row = parent::_Data($id); // 这里可以对内容进行格式化显示操处理 return $row; } // 格式化保存数据 protected function _Format_Data($id, $data, $old) { if (!$id) { // 当提交新数据时,把当前时间插入进去 //$data[1]['inputtime'] = SYS_TIME; } return $data; } // 保存内容 protected function _Save($id = 0, $data = [], $old = [], $func = null, $func2 = null) { $data = \Phpcmf\Service::L('input')->post('data'); return parent::_Save($id, $data, $old, function($id, $data, $old){ // 验证数据 /* if (!$data['title']) { return dr_return_data(0, '标题不能为空!', ['field' => 'title']); }*/ // 保存之前执行的函数,并返回新的数据 if (!$id) { // 当提交新数据时,把当前时间插入进去 //$data['inputtime'] = SYS_TIME; } return dr_return_data(1, null, $data); }, function ($id, $data, $old) { // 保存之后执行的动作 }); } }加一句初始化表的代码不太熟悉二开的话,可以找官方开发,然后再分析分析官方的开发代码,这样自己也学会了开发技巧。这个代码区域可以用来格式化转换,比如使用函数把时间转化为数字再存储
if (!$id) { // 当提交新数据时,把当前时间插入进去 //$data['inputtime'] = SYS_TIME; $data['paytime'] = strtotime($data['paytime']); }之前这样写过,没作用。官方研发技术-罗老师