Эй, я закодировал CakePHP для многих вещей, но никогда не сталкивался с этой проблемой до на удивление. Кроме того, я тщательно проверил файлы в сети и CakePHP и не нашел ответа на мой вопрос. Мой вопрос: у меня есть таблица для моей модели, которая должна быть названа Class, очевидно, я не могу использовать это имя, хотя, поскольку это зарезервированное ключевое слово PHP. Какие варианты я должен иметь, чтобы иметь возможность обращаться к этой модели соответствующим образом.
Пока что у меня есть;
Хотя это действительно работает, это то, что нужно сделать или другие параметры, чтобы иметь возможность ссылаться на него как на класс еще, как я могу делать какие-то манипуляции, такие как _Class?
Когда я сталкиваюсь с такой проблемой, я обычно делаю то, что вы делали, только я префикс зарезервированного слова с «My» (поэтому, когда я читаю код, он не выглядит так, как будто этот класс имеет какое-либо отношение к «Player» .. например, как раз на днях мне захотелось смоделировать модель «ACO» .. но это уже существовало в торте (тот же сценарий зарезервированного слова), поэтому я создал модель под названием Myaco.
Я думаю, вы должны просто назвать его Myclass.
Что касается названия модели и имени контроллера, я думаю, что вы сделали добро, я бы сделал то же самое. Ваш единственный реальный вариант – использовать $useTable = 'classed';
для использования вашей таблицы БД.
Если вы используете префикс подчеркивания, я считаю, что кекс не сможет его обработать (он не пройдет в классе Inflector).
Удачи
Я когда-то тестировал все имена классов CakePHP для Cake 1.2, если они могут использоваться как имена моделей, вот результаты:
Невозможно:
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
Я могу повторить это решение. У меня была та же проблема и я использовал префикс, который был инициалом клиента. Закончился вызов моего Dtclass. К сожалению, мне потребовался час или около того, чтобы выяснить, в чем проблема. Один из тех случаев, когда ответ постоянно смотрит на вас в лицо, пока вы его не узнаете окончательно.