CakePHP模型名称使用PHP保留字
嘿,我已经为许多事情编写了CakePHP代码,但我从来没有遇到过这个问题。此外,我还彻底搜索了net和CakePHP文档,没有找到我的问题的答案。我的问题是,我的模型有一个表,应该命名为Class,显然我不能使用这个名称,因为它是一个保留的PHP关键字。我必须具备哪些选项才能恰当地引用此模型 到目前为止,我有CakePHP模型名称使用PHP保留字,php,cakephp,keyword,Php,Cakephp,Keyword,嘿,我已经为许多事情编写了CakePHP代码,但我从来没有遇到过这个问题。此外,我还彻底搜索了net和CakePHP文档,没有找到我的问题的答案。我的问题是,我的模型有一个表,应该命名为Class,显然我不能使用这个名称,因为它是一个保留的PHP关键字。我必须具备哪些选项才能恰当地引用此模型 到目前为止,我有 将我的类模型文件重命名为player_class.php 将我的类模型类重命名为PlayerClass 将var$name更改为“PlayerClass” 添加到我的班级模型班级;var$
虽然这确实有效,但这是必须做的还是需要其他选项才能将其称为类,比如我可以做任何类似于_Class的损坏吗?当我遇到这种问题时,我通常会做你做的事情,只是我在保留字前面加上“我的”前缀(因此,当我阅读代码时,它看起来与“Player”没有任何关系……例如,就在前几天,我想建模一个“ACO”模型……但这已经存在于cake中(保留字的相同场景),所以我创建了一个名为Myaco的模型 我想你应该把它命名为Myclass 关于模型名称和控制器名称的更改-我认为您做得很好,我也会这样做。您唯一的实际选择是使用
$useTable='classed';
来使用您的DB表
如果使用下划线前缀,我相信cake将无法处理它(它将在屈折符类中失败)
祝你好运我可以支持这个解决方案。我遇到了同样的问题,并使用了一个前缀作为客户端的首字母缩写。最后调用了我的Dtclass。不幸的是,我花了大约一个小时才弄清楚问题所在。其中一种情况是,答案一直盯着你的脸,直到你最终认出它。如果Cake 1.2中的所有CakePHP类名都可以用作模型名,请查看以下结果: 不可能是:
app
appcontroller
appmodel
behaviorcollection
cache
cacheengine
cakelog
cakesession
classregistry
component
configure
connectionmanager
controller
datasource
debugger
dispatcher
file
fileengine
folder
helper
inflector
model
modelbehavior
object
overloadable
overloadable2
router
security
sessioncomponent
set
string
validation
acl
aclbase
aclbehavior
aclcomponent
aclnode
aclshell
aco
acoaction
admin
ajaxhelper
apcengine
apishell
app_model
apphelper
aro
authcomponent
bake
baker
bakeshell
behavior
cachehelper
cake
cakeschema
cakesocket
consoleshell
containablebehavior
controllertask
cookiecomponent
dbacl
dbaclschema
dbconfigtask
dboadodb
dbodb2
dbofirebird
dbomssql
dbomysql
dbomysqlbase
dbomysqli
dboodbc
dbooracle
dbopostgres
dbosource
dbosqlite
dbosybase
element
emailcomponent
error
errorhandler
extracttask
flay
formhelper
htmlhelper
httpsocket
i18n
i18nmodel
i18nschema
i18nshell
iniacl
javascripthelper
jshelper
jshelperobject
l10n
layout
magicdb
magicfileresource
mediaview
memcacheengine
modeltask
multibyte
numberhelper
page
pagescontroller
paginatorhelper
permission
plugintask
projecttask
requesthandlercomponent
rsshelper
sanitize
scaffold
schema
schemashell
securitycomponent
sessionhelper
sessionsschema
shell
shelldispatcher
test
testsuiteshell
testtask
texthelper
themeview
timehelper
translate
translatebehavior
treebehavior
viewtask
xcacheengine
xml
xmlelement
xmlhelper
xmlmanager
xmlnode
xmltextnode
可能是:
app
appcontroller
appmodel
behaviorcollection
cache
cacheengine
cakelog
cakesession
classregistry
component
configure
connectionmanager
controller
datasource
debugger
dispatcher
file
fileengine
folder
helper
inflector
model
modelbehavior
object
overloadable
overloadable2
router
security
sessioncomponent
set
string
validation
acl
aclbase
aclbehavior
aclcomponent
aclnode
aclshell
aco
acoaction
admin
ajaxhelper
apcengine
apishell
app_model
apphelper
aro
authcomponent
bake
baker
bakeshell
behavior
cachehelper
cake
cakeschema
cakesocket
consoleshell
containablebehavior
controllertask
cookiecomponent
dbacl
dbaclschema
dbconfigtask
dboadodb
dbodb2
dbofirebird
dbomssql
dbomysql
dbomysqlbase
dbomysqli
dboodbc
dbooracle
dbopostgres
dbosource
dbosqlite
dbosybase
element
emailcomponent
error
errorhandler
extracttask
flay
formhelper
htmlhelper
httpsocket
i18n
i18nmodel
i18nschema
i18nshell
iniacl
javascripthelper
jshelper
jshelperobject
l10n
layout
magicdb
magicfileresource
mediaview
memcacheengine
modeltask
multibyte
numberhelper
page
pagescontroller
paginatorhelper
permission
plugintask
projecttask
requesthandlercomponent
rsshelper
sanitize
scaffold
schema
schemashell
securitycomponent
sessionhelper
sessionsschema
shell
shelldispatcher
test
testsuiteshell
testtask
texthelper
themeview
timehelper
translate
translatebehavior
treebehavior
viewtask
xcacheengine
xml
xmlelement
xmlhelper
xmlmanager
xmlnode
xmltextnode
谢谢你的回答,这是个好主意。我的职业“class”是指魔兽世界中的一个职业,比如战士,所以我可能会坚持使用PlayerClass,在这种情况下,我很可能会在其他类似的情况下使用这个惯例。只是一个与幻想角色扮演比编程更相关的小观察:在龙与地下城中,使用的完整术语是“角色类”而不是“玩家类”。“魔兽世界也是这样吗?很好的观察结果,这将是更好的选择。谢谢你提出的这个令人敬畏的问题。互联网只是在CakePHP模型问题上使用保留字。你救了我在寻找合适的解决方案方面的麻烦。肯是对的。下划线将失败。在“不可能”中包括
打印
”