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

来源:互联网 发布:云计算是什么工作 编辑:程序博客网 时间:2024/05/31 06:24

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


解决的例子如下:


<?phpprivate 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',),......


原创粉丝点击