Cakephp Parse错误:语法错误,意外的'Class'(T_CLASS),期望标识符(T_STRING)

时间:2016-01-31 20:58:42

标签: php cakephp cakephp-3.0 parse-error

我的数据库中有一个名为“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

我理解错误的来源,但有没有办法摆脱这个错误而不必重命名我的'Classes'表?

2 个答案:

答案 0 :(得分:1)

  

我理解错误的来源,但有没有办法摆脱这个错误而不必重命名我的'Classes'表?

不,不。 :)问题发生是因为CakePHP试图烘烤\App\Model\Entity\Class.php obviously无法正常工作。问题是 类名。

您必须将实体类命名为不同的tell your table object to work with that entity class。发生这种情况是因为Cake期望实体按惯例和"class" is a reserved key word in php是单数的。 Cake为实体选择“Classes”为单数,这会导致问题。因此,烘焙模型,更改实体类,然后烘焙控制器和视图。

我建议您阅读并记住the CakePHP conventions

答案 1 :(得分:0)

Class是reserved keyword of PHP,如果你实例化它会引起麻烦。

解决方案是手动创建模型:

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

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

之后,尽管保留了术语,模型应该可以像其他任何一样使用。话虽如此,一旦您手动创建了模型,我就不会100%完成烘焙结果,所以,如果您可以发布结果,那就太好了。