ThinkPHP3.2.2 改进建议

浏览:462 发布日期:2014/04/30 分类:技术分享 关键字: 建议
在使用Thinkphp的关联模型查询时,发现两个小问题
1. 关于部分关联查询,文件中描述不够清晰,文档中举例如下:
同样,可以使用参数来控制要关联写入的数据:
$result = $User->relation("Profile")->add($data);
根据文档,原以为relation中传入的应该是那个关联的名称
实际发现RelationModel 131行,应该在relation中传入的应该是后面的mapping_name,才能查到部分关联的数据

2. 关联查询时RelationModel第194行构造SQL语句时,没有对特殊表用撇号括起来,在mysql下若表名是特殊的,如user或者group,将导致该sql语句构造出错
原语句如下:
$sql = "SELECT b.{$mappingFields} FROM {$mappingRelationTable} AS a, ".$model->getTableName()." AS b WHERE a.{$mappingRelationFk} = b.{$model->getPk()} AND a.{$mappingCondition}";
修改为:
$sql = "SELECT b.{$mappingFields} FROM `{$mappingRelationTable}` AS a, `".$model->getTableName()."` AS b WHERE a.{$mappingRelationFk} = b.{$model->getPk()} AND a.{$mappingCondition}";
后错误消失
最佳答案
评论( 相关
后面还有条评论,点击查看>>