7

いくつかのプロジェクトではデータベースが必要ないので、データベース構成を変更せずにローカルマシンに Cakephp をセットアップするにはどうすればよいでしょうか? 今私がやったこと...データベースを作成し、構成ファイルを変更しました。しかし、私のデータベースにはテーブルがなく、データベースが無駄になっているだけです....だから、これを行うためのより良い方法を提案してください。

前もって感謝します..

4

3 に答える 3

4

CakePHP 2.3.x では、データベース構成で空の文字列をデータソースとして使用するだけで、正常に動作します。

データベース構成 ( app/Config/database.php ) はほとんど空で、次のようになっています。

class DATABASE_CONFIG {
    public $default = array(
        'datasource' => '',
    );
}

AppModel に DB テーブルを使用しないように指示する必要があります。そうしないと、「データソース クラスが見つかりませんでした」というエラーが発生します。子孫モデルのみで $useTables を設定するだけでは不十分です。

class AppModel extends Model {
    public $useTable = false;
}

私はまだそれで問題を経験していません。

于 2013-09-08T19:22:26.087 に答える
2

テーブルを使用しない場合でも、Cakephp は実際にデータベースに接続しようとするため、これを使用します。

class MyModel extends AppModel {
    public $useTable = false;
}

それは単なる間違いです。cakephp でアプリケーションを作成するのは簡単なことです。データベースを使用せずに開発を開始するには、次の手順を実行する必要があります。

  1. 偽の dbo ソースを作成する

app/Model/Datasource/Dbo/ にファイル DboFakeDboSource.php を作成し、次のコードを入れます

class DboFakeDboSource extends DboSource {
  function connect() {
    $this->connected = true;
    return $this->connected;
  }
  function disconnect() {
    $this->connected = false;
    return !$this->connected;
  }
}
  1. デフォルトの接続を設定する

次のステップは、cakephp にデフォルトで dbo ソースを使用するように指示することです。database.php のデフォルト接続を次のように変更します

var $default = array(
  'driver' => 'FakeDboSource'
);
  1. モデルの微調整

3 番目のステップは、$useTable = false; であることを確認することです。すべてのモデルに含まれているので、AppModel.php に追加します。

于 2013-09-08T23:25:57.000 に答える
0

database.php でデフォルトのデータソース設定を空のままにし、使用するモデルについては、次のように DB で対応するテーブルが必要ないことを指定します。

class MyModel extends AppModel {
    public $useTable = false;
}
于 2013-03-16T13:23:43.813 に答える