Как я могу разбить на страницы данные из другой таблицы базы данных в CakePHP? - PullRequest
0 голосов
/ 23 марта 2012

У меня есть два пользователя базы данных и magento. magento находится на удаленной машине в локальной сети. и пользователи находятся на моей локальной машине.

соединение между ними и выборка данных из этой базы данных magento работает нормально но я хочу сделать нумерацию данных таблицы magento. простое отображение сделано, но для разбивки на страницы нам нужно название модели, и как я могу иметь модель другой базы данных ??

          // in controller action
           $this->Vendor->changeDataSource('vsdatabase');
            if($this->changeDbSource('vsdatabase'))
            {
                $magento_data = $this->Vendor->query("SELECT * from admin_user");
                $this->set('products',$magento_data);
            }

          and changeDataSource($newdb) is defined in model file
         and changeDbSource($database='default') in controller

так как я могу решить мою проблему с нумерацией страниц? Я завершил выборку данных без нумерации страниц. или любой другой вариант сделать это? Спасибо,

1 Ответ

1 голос
/ 24 марта 2012

Вы идете по этому неправильному пути ..

Вы должны создать новую конфигурацию базы данных для внешней базы данных, назовите это, скажем .. $vendor_db in app/config/database.php

http://book.cakephp.org/1.3/en/view/922/Database-Configuration

Тогда вам нужна модель для вашего нового соединения.Сообщите модели, какое соединение с базой данных использовать с $useDBConfig:

class Vendor extends AppModel {
    var $useDbConfig = 'vendor_db';
}

http://book.cakephp.org/1.3/en/view/1058/useDbConfig

Таким образом, в контроллере Vendors вы можете выполнять вызовы базы данных, используя стандартные функции cakePHP, включая paginate.

$this->paginate('Vendor')

Функции модели cakePHP почти всегда должны препятствовать написанию ваших собственных запросов.Вообще говоря, если вы думаете, что должны написать запрос, вы, вероятно, делаете что-то не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...