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,这样岂不是找不到产生错误了么?费解

参考技术A 这是类属性的调用 不会冲突的

关于thinkphp图片上传问题

$files1 是本地图片路径
提问:为什么一直echo出来的是提示我没有上传文件 但是我打印$files1是有地址的啊

ps:$files是通过ajax传参到php后台接受的

参考技术A <form method="post" action="upload.php" enctype="multipart/form-data">
<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 2.0无法自动映射字段,求教啊

thinkphp 视图模型 两个字段映射同一个表

我的thinkphp用的3.1版本,但是自动验证,字段映射,自动完成按照官方步骤做的都不能用

关于 ThinkPHP5 使用 getBy 字段名方式获取数据

关于thinkphp 中的字段自动检查机制

关于向thinkphp的attribute添加字段时遇到问题的记忆