ThinkPHP:关于字段映射parseFieldsMap中的变量名
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkPHP:关于字段映射parseFieldsMap中的变量名相关的知识,希望对你有一定的参考价值。
模型中的映射是下面这样定义的
Class UserModel extends
Model
protected $_map = array(
'name' =>'username', // 把表单中name映射到数据表的username字段
'mail' =>'email', // 把表单中的mail映射到数据表的email字段
);
而parseFielsMap的源码是这样定义的
public function parseFieldsMap($data,$type=1)
// 检查字段映射
if(!empty($this->_map))
foreach ($this->_map as $key=>$val)
if($type==1) // 读取
if(isset($data[$val]))
$data[$key] = $data[$val];//(1)
unset($data[$val]);//(2)
else
if(isset($data[$key]))
$data[$val] = $data[$key];
unset($data[$key]);
return $data;
一个是$_map一个是_map,这样岂不是找不到产生错误了么?费解
关于thinkphp图片上传问题
$files1 是本地图片路径
提问:为什么一直echo出来的是提示我没有上传文件 但是我打印$files1是有地址的啊
ps:$files是通过ajax传参到php后台接受的
<input type='file' name='file'>
<input type='submit' value='提交'>
</form>
//引入UploadFile类
import('ORG.Net.UploadFile');
//实例化UploadFile类
$upload = new UploadFile();
//设置文件大小
$upload -> maxSize = 3292200;
//设置文件保存规则唯一
$upload->saveRule = 'uniqid';
//设置上传文件的格式
$upload -> allowExts = array('jpg','png','jpeg');
//保存路径
$upload->savePath ='./Public/Uploads/';
//设置需要生成缩略图,仅对图像文件有效
$upload->thumb = true;
//设置需要生成缩略图的文件前缀
$upload->thumbPrefix = 'm_'; //生产缩略图也可以根据需要生成1张或多张,2张:'m_,s_'
//设置缩略图最大宽度
$upload->thumbMaxWidth = '150';//2张的不同设置:'150,200'
//设置缩略图最大高度
$upload->thumbMaxHeight = '200';
//删除原图
$upload->thumbRemoveOrigin = true;
//上传失败返回错误信息
if(!$upload->upload())
$this->error($upload->getErrorMsg());
else
$this->success('上传成功');
//获取上传文件的信息
$inf= $upload->getUploadFileInfo();
本回答被提问者和网友采纳 参考技术B ajax不能设定设置表单的MIME编码,默认的编码格式不支持文件上传,图片实际没有上传上去 参考技术C 是不是你的表单没有设置 enctype="multipart/form-data追问
没有表单 我是直接把图片地址调到ajax传过来的 没有Input
追答那你就只传了个地址吧!你print_r($files)一下 是不是只有那个地址。真正上传文件这个$files是一个数组的
以上是关于ThinkPHP:关于字段映射parseFieldsMap中的变量名的主要内容,如果未能解决你的问题,请参考以下文章
我的thinkphp用的3.1版本,但是自动验证,字段映射,自动完成按照官方步骤做的都不能用