您的位置:首页 > 编程语言 > PHP开发

ThinkPHP视图模型动态改变视图联表字段,因为D方法的伪单例而产生BUG的错误处理

2013-08-04 01:47 465 查看
因为TP核心类型基类里在设置完 trueTableName 真实表名后,就不会因为你重新定义了联表字段而再次去重新获取表名,所以当你动态改变 viewFields 属性时,如果关联的表发生了变化,必须清空一下 trueTableName 属性,否则 SQL语句还是用原来的联表,会产生错误

解决的例子如下:

<?php
private function _setCommonViewFields() {
$this->trueTableName = null;
$this->viewFields = array(
'Ip' => array(
'ip_id',
'address_1',
'address_2',
'address_3',
'address_4',
// 'unit_id',
// 'subnet_id',
'server_id',
'server_type',
// 'card_id',
'card_order',
'use_time',
'use_state',
'plan_state',
'lock_state',
'_type' => 'LEFT',
),
'PlanUnit' => array(
// 'unit_id',
// 'unit_type_id',
'unit_name' => 'plan_unit_name',
// 'unit_englishname',
// 'add_time' => 'unit_add_time',
// 'order_num',
'_table' => T1_PREFIX . 'unit',
'_on' => 'Ip.unit_id = PlanUnit.unit_id',
'_type' => 'LEFT',
),
......
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐