Paginate Динамически создаваемая таблица в Cakephp? - PullRequest
1 голос
/ 19 января 2011

Пожалуйста, посмотрите образец кода

            mysql_query('SET AUTOCOMMIT=0;');
            mysql_query('START TRANSACTION;');
            $tableName = rand().'_table;'
            $this->loadModel('Home'); // Model for homes_table

            $sql = 'CREATE TABLE '.$tableName.'_table LIKE homes_table';
            mysql_query($sql);
            // FEW INSERT STATEMENTS ON THE NEW TABLE $tableName //
            /*

            Here I want to paginate the new table
            using $this->paginate(); 
            HOW?

            */

        mysql_query('TRUNCATE table '.$tableName);
        mysql_query('COMMIT;');

Я хочу разбить созданную новую таблицу на страницы? Логика заключается в том, что каждый раз, когда человек запускает сценарий, создается новая таблица с произвольным именем -> затем разбивается на страницы -> затем удаляется ... Или как назначить модель динамически созданным таблицам в cakePHP.

1 Ответ

1 голос
/ 20 января 2011

звучит как то, что ты делаешь, плохо. Кроме того, вы не должны вызывать такие вещи, как CREATE TABLE, TRUNCATE, COMMIT и т. Д.

Посмотрите на пакет sest, как правильно создавать и удалять таблицы, прочитайте API о том, как выполнять транзакции. такие вещи, как http://api13.cakephp.org/class/data-source#method-DataSourcebegin

также имя таблицы должно быть во множественном числе, чтобы торт мог сделать это автоматически, поэтому ваш пример не сработает.

Вы можете получить экземпляр модели, выполнив

$Something = ClassRegistry::init(Inflector::classify($tableName . '_suffix'));
...