我的数据库中有一个名为“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'表?
答案 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%完成烘焙结果,所以,如果您可以发布结果,那就太好了。