doumowu7371 2017-02-24 13:57
浏览 317

PHP致命错误' yii \ base \ ErrorException' 消息' Class' Model Name' 未找到

I trying migration my project from yii1 to yii2. I have some model function I make when I still use Yii1, is among others is generate id uniq function's, like this:

public static function generateID($tableName, $modelName) {
        $dateNow = date("Ymd");
        $checkLastID = $modelName::findBySql(
            "SELECT SUBSTR(MAX(id),-4) AS id FROM $tableName WHERE id LIKE '%$dateNow%'"
        )->one();
        $lastNumber = (int)substr($checkLastID["id"], 8,4);

        if($checkLastID["id"] == '') {
            $id = $dateNow.sprintf("%04s", 1);          
        } else {
            $lastNumber = $checkLastID["id"];
            $lastNumber++;
            if($lastNumber < 10) $id = $dateNow.sprintf("%04s", $lastNumber);
            elseif($lastNumber < 100) $id = $dateNow.sprintf("%04s", $lastNumber);
            elseif($lastNumber < 1000) $id = $dateNow.sprintf("%04s", $lastNumber);
            elseif($lastNumber < 10000) $id = $dateNow.sprintf("%04s", $lastNumber);
            else $id = $lastNumber;
        }
        return $id;
    }

and I access the function from controller like this:

$model->id = Helper::generateID('table_name', 'ModelName');

and than, show error when I want create data:

<pre>PHP Fatal Error &#039;yii\base\ErrorException&#039; with message &#039;Class &#039;ModelName&#039; not found&#039; 

in C:\xampp\htdocs\kampunginggrispare.com\common\models\Helper.php:61

Stack trace:
#0 [internal function]: yii\base\ErrorHandler-&gt;handleFatalError()
#1 {main}</pre>

But, If I change

$checkLastID = $modelName::findBySql("SELECT SUBSTR(MAX(id),-4) AS id FROM $tableName WHERE id LIKE '%$dateNow%'")->one();

to be:

$checkLastID = ModelName::findBySql("SELECT SUBSTR(MAX(id),-4) AS id FROM table_name WHERE id LIKE '%$dateNow%'")->one();

It's work, but doesn't work when I use Parameter like function above

In Yii1, not error, but error in Yii2

Any body can help me ??

Thanks ...

  • 写回答

2条回答 默认 最新

  • dongyuan8024 2017-02-24 14:10
    关注

    Yii2 didn't find ModelName class.

    Please read more about upgrading: Upgrading from Version 1.1: Namespace and Yii2 autoloaders.

    评论

报告相同问题?

悬赏问题

  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序