Intereting Posts
Как добавить xml-данные в xml-файл без перезаписи существующих данных с помощью php? Как получить доступ к переменной в классе PHP, заданной другой функцией? Codeigniter Исключение .htaccess делает проблему в главной директории PHP Codeigniter показывает кеш, когда я нажимаю кнопку «Назад» после выхода из системы Как найти php-файл или функцию, которая создает страницу администратора WordPress? Удалить index.php? Route = common / home из OpenCart Анализ RSS-новостей Google с помощью PHP Могу ли я просмотреть XML, который PHP SOAP хочет отправить перед отправкой? Невозможно переопределить ошибку класса при генерации отчета о покрытии кода PHPUnit Postgres pg_dump удаляет базу данных в другом порядке каждый раз Как переместить почтовое сообщение в папку с php imap Найти все hrefs на странице и заменить ссылку, поддерживающую предыдущую ссылку – PHP Подача офлайн-доступа Как создать редактируемую форму Pdf в php Как поместить mysql внутри php-функции?

Имя модели CakePHP использует PHP зарезервированное слово

Эй, я закодировал CakePHP для многих вещей, но никогда не сталкивался с этой проблемой до на удивление. Кроме того, я тщательно проверил файлы в сети и CakePHP и не нашел ответа на мой вопрос. Мой вопрос: у меня есть таблица для моей модели, которая должна быть названа Class, очевидно, я не могу использовать это имя, хотя, поскольку это зарезервированное ключевое слово PHP. Какие варианты я должен иметь, чтобы иметь возможность обращаться к этой модели соответствующим образом.

Пока что у меня есть;

  1. Переименовал файл модели класса в player_class.php
  2. Переименовал класс класса класса в PlayerClass
  3. Изменено имя var $ name на 'PlayerClass'
  4. Добавлен в класс модели класса; var $ useTable = 'classes';
  5. Переименовал мой контроллер класса в player_classes_controller.php
  6. Переименовал класс класса контроллера в PlayerClassesController
  7. Изменено имя var $ name на 'PlayerClasses'

Хотя это действительно работает, это то, что нужно сделать или другие параметры, чтобы иметь возможность ссылаться на него как на класс еще, как я могу делать какие-то манипуляции, такие как _Class?

Related of "Имя модели CakePHP использует PHP зарезервированное слово"

Когда я сталкиваюсь с такой проблемой, я обычно делаю то, что вы делали, только я префикс зарезервированного слова с «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. К сожалению, мне потребовался час или около того, чтобы выяснить, в чем проблема. Один из тех случаев, когда ответ постоянно смотрит на вас в лицо, пока вы его не узнаете окончательно.