Cronjobs CakePHP с помощью оболочки, нужна помощь - PullRequest
0 голосов
/ 07 апреля 2011

Я создаю оболочку в cakephp для печати данных из модели, следуя этому уроку о Создание оболочек и задач

class ReportShell extends Shell {
    var $uses = array('Report');
    function main() {
        $reports = $this->Report->findAll();
        foreach($reports as $report) {
            $this->out('Report Name: ' . $report['Report']['name'] . "\n");
        }

        $this->out("Total Reports: " . count($reports) . "\n"); 
    }
}

но затем, когда я набрал $cake report на консоли, я получаю это сообщение об ошибке:

Fatal error: Unable to load DataSource file dbo\dbo_mysql_ex.php in 
C:\xampp\htdocs\cake_test\core\cake\libs\model\connection_manager.php on line 178

Есть идеи, как мне это исправить?

UPDATE: Следуя предложению @olezhek, я отредактировал свой файл database.php и использую «mysql» вместо «mysql_ex», я действительно получаю другое сообщение об ошибке, в котором говорится, что у меня есть неопределенная функция в модели, которую я даже не загружал на моя оболочка отчета, как это возможно ??

спасибо

ПРИМЕЧАНИЕ. Я создал базу данных вместе с таблицей (отчетами), полями и записями, и мне удалось просмотреть записи таблицы с помощью браузера.

Ответы [ 2 ]

0 голосов
/ 07 апреля 2011

должен $ this-> Report-> findAll (); не быть $ this-> Report-> find ('all');?

примечание: зачем вам запускать это в cron, эхо ничего не сделает, так как никто этого не увидит

0 голосов
/ 07 апреля 2011

Я думаю, что вы пытаетесь использовать пользовательский драйвер mysql (например, для отладки запросов). Вам следует изменить имя драйвера на «mysql» в вашем /app/config/database.php. Или, если вы все еще хотите отслеживать запросы, вы должны создать /app/models/datasources/dbo/dbo_mysql_ex.php и вставить в него код http://bin.cakephp.org/saved/32872.

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