ホームページ >php教程 >php手册 >thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法,vieworder

thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法,vieworder

WBOY
WBOYオリジナル
2016-06-13 09:22:331735ブラウズ

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方法.
 

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。