3

新しいプロジェクトで使用するために 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',
    );
}
4

2 に答える 2

15

dhofstet が説明したように、デフォルトの設定が必要です。私がしていることは、コンストラクターを DATABASE_CONFIG クラスに追加して、データベース構成を切り替えることです。

このようなもの...

public function __construct()
{
    if (DEV_SERVER) {
        $this->default = $this->development;
    } else {
        $this->default = $this->production;
    }
}
于 2011-11-03T15:28:10.017 に答える
2

データベース構成はおそらく正しいです。

「Cakeがデータベースに接続できない」理由。が表示されているのは、データベースに接続できるかどうかをチェックするスクリプト( )がこのテストにデータベース接続/lib/Cake/View/Pages/home.ctpのみを使用しているためです。defaultそして、そのような接続がないので、それは失敗します。

于 2011-11-03T14:39:33.543 に答える