CakePHP模型名称使用PHP保留字

CakePHP模型名称使用PHP保留字,php,cakephp,keyword,Php,Cakephp,Keyword,嘿,我已经为许多事情编写了CakePHP代码,但我从来没有遇到过这个问题。此外,我还彻底搜索了net和CakePHP文档,没有找到我的问题的答案。我的问题是,我的模型有一个表,应该命名为Class,显然我不能使用这个名称,因为它是一个保留的PHP关键字。我必须具备哪些选项才能恰当地引用此模型 到目前为止,我有 将我的类模型文件重命名为player_class.php 将我的类模型类重命名为PlayerClass 将var$name更改为“PlayerClass” 添加到我的班级模型班级;var$

嘿,我已经为许多事情编写了CakePHP代码,但我从来没有遇到过这个问题。此外,我还彻底搜索了net和CakePHP文档,没有找到我的问题的答案。我的问题是,我的模型有一个表,应该命名为Class,显然我不能使用这个名称,因为它是一个保留的PHP关键字。我必须具备哪些选项才能恰当地引用此模型

到目前为止,我有

  • 将我的类模型文件重命名为player_class.php
  • 将我的类模型类重命名为PlayerClass
  • 将var$name更改为“PlayerClass”
  • 添加到我的班级模型班级;var$useTable='classes'
  • 将我的类控制器重命名为player\u classes\u controller.php
  • 将我的类控制器类重命名为PlayerClassesController
  • 将var$name更改为“PlayerClasses”

  • 虽然这确实有效,但这是必须做的还是需要其他选项才能将其称为类,比如我可以做任何类似于_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模型问题上使用保留字。你救了我在寻找合适的解决方案方面的麻烦。肯是对的。下划线将失败。在“不可能”中包括
    打印