3

Doctrineを使用するときに、別のようなテーブルを作成する方法はありますか?MySQLにはそうするための関数があることを私は知っています:

CREATE TABLE user2 LIKE user;

テーブルuserとuser2は同一になります。これはDoctrineで実行できますか?

4

3 に答える 3

1

あなたが探しているのは、モデルが生成されたときに継承するスキーマレベルで定義することです(あなたの例を使用しましょう)。ドキュメントで説明されているドクトリンの具体的な継承を使用してこれを行うことができます。user2user

だから、あなたのschema.yml

User:
  columns:
    name: string

User2:
  inheritance:
    extends: User
    type: concrete
  columns:
    something: int

この方法user2は別のテーブルになり、前に で定義したのと同じ列 (「名前」) が含まれuserます。なぜ 2 つの同一のテーブルが必要なのかはわかりませんが、上記の方法を使用すれば確実に可能です。

于 2009-11-04T20:17:44.593 に答える
0

違うと思う。:(

ここhttp://www.doctrine-project.org/documentation/cookbook/1_1/en/plug-and-play-schema-information-with-templatesのようなテンプレートからテーブルを作成するか、Doctrine_RawSql を使用できます。

于 2009-11-04T23:14:39.187 に答える
0

Doctrine はこれのための簡単なメソッドを提供します: Doctrine_Record::copy()。

  $copy = $user->copy();

copy() でレコードをコピーすると、古いレコードの値を持つ新しいレコード (状態 TDIRTY) が返され、そのレコードの関係がコピーされることに注意してください。リレーションもコピーしたくない場合は、copy(false) を使用する必要があります。

関係なしでユーザーのコピーを取得する

$copy = $user->copy(false) ;

于 2010-02-11T11:41:23.667 に答える