Переходя от приложения cakephp 2, я застрял на попытке использовать $ tablePrefix в своих моделях. Это все еще доступно в Cake 3? Или как я могу использовать что-то еще (пожалуйста, объясните).cakephp 3.0 using tableprefix?
ответ
Настольные префиксы исчезли. Существует открытая PR, однако не ясно, в этот момент, когда, и если все это собирается сделать это:
https://github.com/cakephp/cakephp/pull/4505
Как отметил Лоренцо в комментариях, альтернативой может использовать события для инициализации моделей с префиксом имени таблицы:
For people still wanting support for prefixes in their tables, there is a way to support it using events. This will probably work for all table operations. Add it to your bootstrap.php file:
EventManager::instance()->on('Model.initialize', function ($event, $instance) { $instance->table('prefix_' . $instance->table()); });
https://github.com/cakephp/cakephp/pull/4505#issuecomment-76154855
чтобы получить прив IX в таблице, как вы это делали в 2.x
просто сделать это в своем классе таблицы:
public function initialize(array $config) {
$this->table('my_prefix_' . $this->table());
...
}
Я мигрируют некоторые cake2.x код cake3. Небольшое изменение кода ndm для меня до сих пор работало в bootstrap.php, в следующих строках:
Cake\Event\EventManager::instance()->on('Model.initialize', function ($event) {
$instance = $event->subject;
if ($instance->defaultConnectionName() == 'default') {
$instance->table('prefix_' . $instance->table());
}
});
- 1. Ajax Pagination cakePHP 3.0
- 2. Cakephp 3.0 Войти
- 3. Pagination in CakePHP 3.0
- 4. Radio Button CakePHP 3.0
- 5. cakephp 3.0 SQL QUEry
- 6. Cakephp 3.0 урок сложный
- 7. CakePHP 3.0 Modelless Pagination
- 8. cakephp 3.0 routing issue
- 9. Cakephp 3.0 Несколько таблиц
- 10. Cakephp 3.0 скачать файл
- 11. CakePHP 3.0 URL-адрес
- 12. Использование плагина CakePHP 3.0
- 13. cakePHP 3.0 Загрузка изображений
- 14. Перемещение пути cakephp в cakephp 3.0
- 15. Cakephp 3.0 Sql Injection Protection
- 16. Cakephp-3.0 Можно сразу перенаправить?
- 17. CakePHP 3.0 cake Ошибка консоли
- 18. CakePHP 3.0 и новый проект
- 19. CakePhp 3.0: проблемы с PDO
- 20. cakePHP 3.0 и bootstrap glyphicons
- 21. Пользовательский запрос в CakePHP 3.0?
- 22. CakePHP-3.0 несколько belongsTo ассоциации
- 23. Cakephp 3.0 Уникальная электронная почта
- 24. Ошибка модульной ошибки Cakephp 3.0
- 25. Внедрение пользовательских событий CakePHP 3.0
- 26. CakePHP 3.0 - Войти не работает
- 27. Cakephp 3.0 Тестирование модуля Проблема
- 28. cakephp-3.0 novice, \ vendor \ autoload.php
- 29. cakephp 3.0 isAuthorized() не называется
- 30. 3.0 Cakephp route html only
Спасибо! Неудивительно, что я не мог найти его. Позор Я не могу использовать торт при использовании этого обходного пути. Жаль, что «производители» cakephp живут в другом мире от пользователей ........... – Snelweg
Почему вы не можете использовать cakephp при использовании этого обходного пути? –
@Snelweg Это не ** обходное решение, это подходящее место для этого. Я задавался вопросом, почему его не хватает в настройках соединения, но после некоторого обсуждения с Лоренцо я понял, что это на самом деле должно быть сделано на уровне таблиц. ORM может поддерживать другие источники данных, которые * не * вообще не используют или не знают о таблицах, например, базы данных CSV, REST или Graph. Префикс можно настроить, просто используя класс Configure для чтения префикса из конфигурации. – burzum