Cakephp: загрузка моделей без файлов моделей - PullRequest
3 голосов
/ 16 июня 2011

У меня есть таблицы, которые создаются на лету, и я хотел бы получить к ним доступ через модель. Поскольку эти таблицы создаются динамически, у меня нет модель .php файлы для них. Таблицы создаются в соответствии с Соглашение об именах тортов. Я пытался использовать loadModel (), чтобы загрузить их, но Пирог все еще жалуется, что таблицы отсутствуют.

Есть ли решение для этого?

Спасибо.

Ответы [ 2 ]

4 голосов
/ 17 мая 2012

На момент написания статьи, используя CakePHP 2.1.2

В вашем контроллере добавьте App::uses('AppModel', 'Model');. Затем создайте экземпляр модели

    $RemoteHeader = new AppModel(array(
                'table' => 'SOP10100',
                'ds' => 'external',
                'name' => 'RemoteHeader',
                'alias' => 'InvoiceHeader',
                'primaryKey' => 'id',
                'hasMany' => array(
                    'InvoiceDetail' => array(
                        'foreignKey' => 'SOPNUMBE',
                        'counterCache' => false
                ))));

затем извлеките данные с любыми необходимыми параметрами модели:

    $data = $RemoteHeader->find('all', array(
            'fields' => array(
            'SOPNUMBE',
            'CUSTNAME',
            'DUEDATE',
            'DOCDATE',
            'DOCAMNT',
            'SUBTOTAL')));
0 голосов
/ 16 июня 2011

Создать /app/models/dynamic.php с классом

class Dynamic extends AppModel {
    var $name = 'Dynamic'
    var $useTable = null;
}

в действии вашего контроллера

$this->Dynamic->useTable = 'newly-created-table';

Это не проверено, дайте мне знать, если возникли проблемы

...