PHP-ThinkPHP模型对象传值问题
我在模板解析的时候,写了一个多表模型处理方法
protected function tableJoin($table) {
$table = trim($table,',');
$Model = M();
if (strpos($table, ',') === false) {
return $Model->table(DB_PREFIX.$table);
} else {
$tableArray = explode(',', $table);
$resultObject = $Model->table(DB_PREFIX.$tableArray[0]);
array_shift($tableArray);
foreach ($tableArray as $tableValue) {
$tableValue = explode('|',trim($tableValue,'|'));
$resultObject = $resultObject->join(DB_PREFIX."{$tableValue[0]} ON {$tableValue[1]}");
}
return $resultObject;
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
其实我想说的是
在第5行执行
$total = $Model->cache($tag['cache'])->where($tag['where'])->count(1);
后你的model需要重新指定你的table,否则的话,每执行一次查询,肯定会把所有的table、join、select、where等项清空的
对于对象复制不是用等号,而是要关键字clone
<?php
class A {}
$a = new A();
$b = $a;
var_dump($a);
var_dump($b);
输出
---------- PHP5.3 ----------
object(A)#1 (0) {
}
object(A)#1 (0) {
}
其实都是一个对象
而
<?php
class A {}
$a = new A();
$b = clone $a;
var_dump($a);
var_dump($b);
输出
---------- PHP5.3 ----------
object(A)#1 (0) {
}
object(A)#2 (0) {
}
而这样明显是2个对象,#1 和 #2