我試圖遷移我的項目從yii1到yii2。 我有些借鑑作用我做的時候我還在用Yii1,是在其他的生成ID uniq的功能的,就像這樣:PHP致命錯誤'警予基地 ErrorException '有消息' '類型號名稱'找不到
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;
}
,我從控制器訪問功能是這樣的:
$model->id = Helper::generateID('table_name', 'ModelName');
比,顯示錯誤,當我想創建數據:
<pre>PHP Fatal Error 'yii\base\ErrorException' with message 'Class 'ModelName' not found'
in C:\xampp\htdocs\kampunginggrispare.com\common\models\Helper.php:61
Stack trace:
#0 [internal function]: yii\base\ErrorHandler->handleFatalError()
#1 {main}</pre>
但是,如果我改變
$checkLastID = $modelName::findBySql("SELECT SUBSTR(MAX(id),-4) AS id FROM $tableName WHERE id LIKE '%$dateNow%'")->one();
是:
$checkLastID = ModelName::findBySql("SELECT SUBSTR(MAX(id),-4) AS id FROM table_name WHERE id LIKE '%$dateNow%'")->one();
它的工作,但是當我使用參數之類的函數以上
在Yii1,沒有錯誤是不行的,但錯誤Yii2
任何機構可以幫我 ??
謝謝...
仍然錯誤Mr. RiggsFolly –