Столы для выпечки с заглавными буквами

Я устанавливаю торт 3.0 в базу данных вне соглашения, все таблицы с заглавной буквой, поэтому bake возвращает эту ошибку:

Исключение: SQLSTATE [42S02]: Базовая таблица или представление не найдены: 1146 Таблица ‘db.c_a_d_b_e_m’ не существует в [/var/www/project/vendor/cakephp/cakephp/src/Database/Schema/Collection.php, строка 130]

Есть ли у вас какой-либо способ настроить Inflector для идентификации таблиц выпечки заглавными буквами?

0

Решение

К сожалению, утилита bake не может испечь все за вас, если существующий источник данных не соответствует соглашению. Вам нужно будет создать Объекты таблицы сами и установите там имена пользовательских таблиц. Так что для примера, который вы показали, создайте src/Model/Table/Cadbem.php файл и установить имя пользовательской таблицы это initialize метод:

namespace App\Model\Table;

use Cake\ORM\Table;

class CadbemTable extends Table
{

public function initialize(array $config)
{
$this->table('CADBEM');
}

}

Как только вы это сделаете, вы можете создать Controllers / Views с помощью утилиты bake на основе этого табличного объекта.

2

Другие решения

Я обнаружил, что это полезно при использовании нестандартных имен таблиц:

$> php bin/cake.php bake model PLURAL_MODEL_NAME_HERE --table NON_STANDARD_TABLE_NAME_HERE

Затем вы можете запустить шаблон / контроллеры

$> php bin/cake.php bake controller PLURAL_MODEL_NAME_HERE
$> php bin/cake.php bake template PLURAL_MODEL_NAME_HERE
1

По вопросам рекламы [email protected]