程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> thinkphp視圖模型查詢提示ERR: 1146:Table db.pr_order_view doesnt exist的解決方法,vieworder

thinkphp視圖模型查詢提示ERR: 1146:Table db.pr_order_view doesnt exist的解決方法,vieworder

編輯:關於PHP編程

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved