+ -
当前位置:首页 → 问答吧 → 这个算BUG吗?

这个算BUG吗?

时间:2011-12-12

来源:互联网

PHP 视图查询
表结构 think_blog
  1. CREATE TABLE IF NOT EXISTS `think_blog` (
  2.   `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  3.   `name` varchar(15) NOT NULL DEFAULT '',
  4.   `userId` mediumint(5) unsigned NOT NULL DEFAULT '0',
  5.   `categoryId` smallint(5) unsigned NOT NULL,
  6.   `title` varchar(255) NOT NULL DEFAULT '',
  7.   `content` longtext,
  8.   `cTime` int(11) unsigned NOT NULL DEFAULT '0',
  9.   `mTime` int(11) unsigned NOT NULL DEFAULT '0',
  10.   `status` tinyint(1) unsigned NOT NULL DEFAULT '0',
  11.   `readCount` mediumint(5) unsigned NOT NULL DEFAULT '0',
  12.   `commentCount` mediumint(5) unsigned NOT NULL DEFAULT '0',
  13.   `tags` varchar(100) NOT NULL,
  14.   PRIMARY KEY (`id`)
  15. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8
复制代码
表think_category
  1. CREATE TABLE IF NOT EXISTS `think_category` (
  2.   `id` mediumint(5) unsigned NOT NULL AUTO_INCREMENT,
  3.   `name` varchar(30) NOT NULL DEFAULT '',
  4.   `title` varchar(50) NOT NULL DEFAULT '',
  5.   `remark` varchar(255) NOT NULL DEFAULT '',
  6.   `status` tinyint(1) unsigned NOT NULL DEFAULT '0',
  7.   PRIMARY KEY (`id`)
  8. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8
复制代码
采用视图查询,视图定义
  1. <?php
  2. class BlogViewModel extends ViewModel {
  3.     public $viewFields = array(
  4.        'Blog'=>array('id','name','title','cTime','categoryId','content','readCount','tags','commentCount','status'),
  5.         'Category'  =>  array('title'=>'category', '_on'=>'Blog.categoryId=Category.id')
  6.     );
  7. }
  8. ?>
复制代码
查询所有think_Blog 表 status=1 的数据
  1.   public function index(){   
  2.               $Blog = D("BlogView");
  3.               $count = $Blog->where("status=1")->count();
  4.               echo "pange count".$count;
  5.                $this->display("Index/index");
  6.     }
复制代码
此处的$count 不会返回值
通过调试界面其SQL 为
  1. SELECT COUNT(*) AS tp_count FROM think_blog Blog JOIN think_category Category ON Blog.categoryId=Category.id WHERE status=1 LIMIT 1
复制代码
手动执行会报错,因为不能识别是那个表的status
如果 把 $Blog->where("status=1")->count() --> $Blog->where("Blog.status =1")->count() 就OK 了

这就产生了一个问题,如果两个表里面的视图存在相同的字段名,条件中需要手动 指名具体是那个表, 但是上面我的视图只定义了
一个status 了,请问管理员这个算是BUG吗?  我是新手 ,还是我哪里操作错了? 例外问下,有 thinkPhp 源码的BUG追踪查看吗?
Tp版本:ThinkPHP_2.1_full_with_extend.zip

作者: playsoso   发布时间: 2011-12-12

我自己顶顶

作者: playsoso   发布时间: 2011-12-12

热门下载

更多