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