Как указать конфигурацию базы данных в CakePHP 2.0.2? - PullRequest
3 голосов
/ 03 ноября 2011

Я только что установил CakePHP 2.0.2 для использования в новом проекте.Я пытаюсь использовать конфигурацию базы данных под названием development, но моя модель, похоже, не подхватывает ее.

Основываясь на новых соглашениях CakePHP 2 о каталогах и именах файлов, я создал следующее в/app/Model/AppModel.php:

<?php
class AppModel extends Model {

    public $useDbConfig = 'development';
}

Однако домашняя страница по умолчанию сообщает мне:

Cake НЕ может подключиться к базе данных.

Тем не менее, если я изменю имя конфигурации в /app/Config/database.php на default, сообщение изменится на сообщение об успехе, как будто оно не отвечает на мой пользовательский класс AppModel.

Как я могу это исправить?Как говорится в новых документах CakePHP 2.0, использовать свойство $useDbConfig, как я это делал выше?

РЕДАКТИРОВАТЬ: Содержимое /app/Config/database.php:

class DATABASE_CONFIG {

    public $development = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'root',
        'password' => '',
        'database' => 'cakephp_db',
        'prefix' => '',
        'encoding' => 'utf8',
    );
}

Ответы [ 2 ]

13 голосов
/ 03 ноября 2011

Как объяснил dhofstet, вам все еще нужно иметь конфигурацию по умолчанию. Я добавляю конструктор в класс DATABASE_CONFIG для переключения между конфигами базы данных.

Как то так ...

public function __construct()
{
    if (DEV_SERVER) {
        $this->default = $this->development;
    } else {
        $this->default = $this->production;
    }
}
2 голосов
/ 03 ноября 2011

Ваша конфигурация базы данных, скорее всего, правильная.

Причина «Cake НЕ может подключиться к базе данных». показано, потому что сценарий, который проверяет, может ли он подключиться к базе данных (/lib/Cake/View/Pages/home.ctp), использует только соединение с базой данных default для этого теста. И поскольку такого соединения нет, оно разрывается.

...