thinkphp视图模型查询提示err: 1146:table 'db.pr_order_view' doesn't exist的解决方法,vieworder本文实例讲述了thinkphp视图模型查询失败提示:err: 1146:table 'db.pr_order_view' doesn't exist解决办法。分享给大家供大家参考。具体方法如下:
一、问题描述:
想用thinkphp的视图模型进行关联查询,结果出现了这样的问题(log日志记录):err: 1146:table 'db.pr_order_view' doesn't exist,我就纳闷,视图模型怎么出来的sql是这样的呢,视图模型如下:
复制代码 代码如下:
class orderviewmodel extends viewmodel
{
public $viewfields = array(
'order' =>array(
'_as'=>'orders', //重新命名,以免与系统语法冲突
'id'=>'oid',
'ordid',
'user',
'product',
'status',
'paynum',
'cat',
'payment_trade_no',
'ip'=>'mip',
'reserve_time',
'createtime',
'payment_trade_status',
),
'member'=>array(
'id'=>'mid',
'name'=>'uname',
'cardnum',
'tel',
'reg_time',
'reg_ip',
'qq',
'email',
'address',
'last_login_time',
'last_login_ip',
'_on'=>'orders.user=member.id'
),
'product'=>array(
'id',
'shorttitle',
'img1',
'category',
'_on'=>'orders.product=product.id'
),
);
}
?>
二、解决方法:
看了手册及百度了很多,没有找到解决方案,调用也没有错$form = d('admin/orderview');(这里我用了分组)经过我自己查看,原来是有问题的,原来视图模型的名字命名错了,orderview.class.php,正常应该是 orderviewmodel.class.php。
对于thinkphp初学者来说尤其要注意不要犯这样的低级错误!
希望本文所述对大家的thinkphp框架程序设计有所帮助。
thinkphp视图模型3张表联合查询
连接不建议做聚合操作,很容易出问题,一般这种都直接同步用户的消费金额,换句话说,就是再单独一份用户消费表,用户有消费的时候就增加这个字段的值。
或者把你的sql客房订单和餐饮订单分开写,不然就只有嵌套了,似乎没有这个必要
thinkphp m方法的使用问题
你传的是“rj1”,m(“rj1”)这个m方法内传的是类名,thinkphp在查询时会将类名转换为表名。归则是表前缀+_大写字母与小写字
母+_大写字母与小写字母,例如abcdef转换为表名就是caiyy_abc_def,如果换为小写就没问题了action=/index
/addsoft/rj1,程序还有一点错误:
$form =m($soft);$form->create();
这里应该是d($soft);只有d函数创建的对象有create方法.
http://www.bkjia.com/phpjc/903485.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/903485.htmltecharticlethinkphp视图模型查询提示err: 1146:table 'db.pr_order_view' doesn't exist的解决方法,vieworder 本文实例讲述了thinkphp视图模型查询失败提示:err: 1146:...
