Thinkphp M方法出错,D方法却可以

错误回顾:

M('Local')->find();  //报错
  
  //错误信息:Table 'test.local' doesn't exist [ SQL语句 ] : SHOW COLUMNS FROM `local`
D(
'Local')->find();  //正确

LocalModel.class.php文件内容如下

<?php
namespace HomeModel;

use ThinkModel;

class LocalModel extends Model
{
    protected $tableName = 'user';
}

原因:使用M方法的时候,方法名必须和表名称对应,在里面通过tableName指定表明是没有效果的。

    D方法模型文件名称可以和表明没有关系,通过模型属性tableName指定即可。

至于为什么,手册上没明确说明。暂时我也还不清楚

原文地址:https://www.cnblogs.com/qq917937712/p/5732730.html