迅睿CMS框架是一款PHP8高性能·简单易用的CMS开源开发框架,基于MIT开源许可协议发布,免费且不限制商业使用,是免费开源的产品,以万端互联为设计理念,支持的微信公众号、小程序、APP客户端、移动端网站、PC网站等多终端式管理系统。
联系官方销售客服
1835022288
028-61286886
PHP程序里面
插件之定义字段复选框多选保存报错
这个要怎么处理
PHP文件:URL地址:
插件名称:
把全部控制器的代码发来看看,部分代码很难看出问题
梦幻不要截图,全部发代码,我改改应该就可以了,很明显是没有格式化数组
<?php namespace Phpcmf\Controllers\Admin; class Home extends \Phpcmf\Table { public function __construct(...$params) { parent::__construct(...$params); \Phpcmf\Service::V()->assign('menu', \Phpcmf\Service::M('auth')->_admin_menu( [ '表单管理' => [APP_DIR.'/home/index', 'fa fa-area-chart'], ] )); // 表单显示名称 $this->name = dr_lang('表单'); // 模板前缀(避免混淆) $this->tpl_prefix = 'config_'; // 用于表储存的字段,后台可修改的表字段 $this->field = \Phpcmf\Service::L('cache')->get('xcrm'.'-field'); $field = array (); // 初始化数据表 $this->_init([ 'table' => 'xcrm_customer', // (不带前缀的)表名字 'fields' => $field, 'field' => $this->field, // 可查询的字段 'order_by' => 'id desc', // 列表排序,默认的排序方式 'date_field' => 'inputtime', // 按时间段搜索字段,没有时间字段留空 ]); // 把公共变量传入模板 \Phpcmf\Service::V()->assign([ // 搜索字段 'fields' =>$field, 'field' => $this->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, $data) = $this->_List(); \Phpcmf\Service::V()->display('config_list.html'); } // 添加内容 public function add() { list($tpl ,$data) = $this->_Post(0); \Phpcmf\Service::V()->display('config_add.html'); } // 修改内容 public function edit() { $id = intval(\Phpcmf\Service::L('Input')->get('id')); list($tpl, $data) = $this->_Post($id); if (!$data) { $this->_admin_msg(0, dr_lang('内容不存在')); } \Phpcmf\Service::V()->display($tpl); } //分配 public function me_edit() { $in = $ids =[]; $ids = \Phpcmf\Service::L('input')->get_post_ids(); foreach ($ids as $i) { $i && $in[] = intval($i); } if($ids){ $uid = \Phpcmf\Service::L('input')->post('uid'); if($uid != 0){ $data = array( 'uid' => $uid, ); \Phpcmf\Service::M()->db->table('xcrm_customer')->whereIn('id', $in)->update($data); $this->_json(1, dr_lang('操作成功')); }else{ $this->_json(0, dr_lang('没选择用户')); } }else{ $this->_json(0, dr_lang('没选择数据')); } } // 删除内容 public function del() { $this->_Del( \Phpcmf\Service::L('Input')->get_post_ids(), function($rows) { // 删除前的验证 return dr_return_data(1, 'ok', $rows); }, function($rows) { // 删除后的处理 foreach($rows as $t){ $cid = (int)$t['id']; \Phpcmf\Service::M()->table('xcrm_record')->where('cid', $cid)->delete(); } return dr_return_data(1, 'ok'); }, \Phpcmf\Service::M()->dbprefix($this->init['table']) ); } // 保存内容 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){ // 验证数据 $data['dingjin'] = dr_array2string($data['dingjin']); // 保存之前执行的函数,并返回新的数据 if (!$id) { // 当提交新数据时,把当前时间插入进去 $data['inputtime'] = SYS_TIME; } if ($data['updatetime']) { $data['updatetime'] = strtotime($data['updatetime']); } print_r($data);exit; return dr_return_data(1, null, $data); }, function ($id, $data, $old) { // 保存之后执行的动作 if($data['follow']){ $datas = array( 'oid' => $data['oid'], 'cid' => $id, 'content' => $data['follow'], 'inputtime' => SYS_TIME, ); \Phpcmf\Service::M()->db->table('xcrm_record')->insert($datas); } }); } // 后台批量保存排序值 public function order_edit() { $this->_Display_Order( intval(\Phpcmf\Service::L('Input')->get('id')), intval(\Phpcmf\Service::L('Input')->get('value')), function ($r) { \Phpcmf\Service::M('xcrm', APP_DIR)->cache(); } ); } }
查询下 是否是数组 is_array 如果是数组就dr_array2string 转换一下
foreach ($data as $name => $value) { if (is_array($data[$name])) { $data[$name] = dr_array2string($data[$name]); } }
点提交按钮会弹出一些字母,看看内容
回复迅睿框架创始人
需要格式化一下
加了还是报错 选择一个不会报错 但是读取不出来回复迅睿框架创始人
回复迅睿框架创始人
很明显了,这个字段的问题
易学习
把全部控制器的代码发来看看,部分代码很难看出问题
梦幻不要截图,全部发代码,我改改应该就可以了,很明显是没有格式化数组
易学习