簡體   English   中英

Cakephp 解析錯誤:語法錯誤,意外的“類”(T_CLASS),需要標識符(T_STRING)

[英]Cakephp Parse error: syntax error, unexpected 'Class' (T_CLASS), expecting identifier (T_STRING)

我的數據庫中有一個名為“classes”的表。

當我做cake bake all classes我收到此錯誤:

Parse error: syntax error, unexpected 'Class' (T_CLASS), expecting identifier (T_STRING) in C:\xampp\htdocs\timetable\src\Model\Table\ClassesTable.php on line 4

我知道錯誤來自哪里,但是有沒有辦法擺脫這個錯誤而不必重命名我的“類”表?

我知道錯誤來自哪里,但是有沒有辦法擺脫這個錯誤而不必重命名我的“類”表?

不,你沒有。 :) 問題發生是因為 CakePHP 嘗試烘焙\\App\\Model\\Entity\\Class.php顯然是行不通的。 問題在於類名稱。

您將不得不以某種不同的方式命名實體類,並告訴您的表對象使用該實體類 發生這種情況是因為 Cake 按照慣例希望實體是單數,而“class”是 php 中的保留關鍵字 Cake 將實體的“類”轉換為單數,這就是導致問題的原因。 所以烘焙你的模型,改變實體類,然后烘焙控制器和視圖。

我建議您閱讀並記住CakePHP 約定

Class 是PHP 的一個保留關鍵字,如果你這樣實例化它會引起麻煩。

一種解決方案是手動創建模型,如下所示:

class MyClass extends AppModel {
    public $useTable = 'classes';
}

您需要確保您的控制器 $ 使用 MyClass(在您的 ClassesController 中)。

在那之后,盡管保留了術語,模型應該可以像任何其他模型一樣使用。 話雖如此,一旦您手動創建了模型,我就不會 100% 相信烘焙的結果,所以如果您能發布您的結果,那就太好了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM