Doctrineを使用するときに、別のようなテーブルを作成する方法はありますか?MySQLにはそうするための関数があることを私は知っています:
CREATE TABLE user2 LIKE user;
テーブルuserとuser2は同一になります。これはDoctrineで実行できますか?
あなたが探しているのは、モデルが生成されたときに継承するスキーマレベルで定義することです(あなたの例を使用しましょう)。ドキュメントで説明されているドクトリンの具体的な継承を使用してこれを行うことができます。user2
user
だから、あなたのschema.yml
:
User:
columns:
name: string
User2:
inheritance:
extends: User
type: concrete
columns:
something: int
この方法user2
は別のテーブルになり、前に で定義したのと同じ列 (「名前」) が含まれuser
ます。なぜ 2 つの同一のテーブルが必要なのかはわかりませんが、上記の方法を使用すれば確実に可能です。
違うと思う。:(
ここhttp://www.doctrine-project.org/documentation/cookbook/1_1/en/plug-and-play-schema-information-with-templatesのようなテンプレートからテーブルを作成するか、Doctrine_RawSql を使用できます。
Doctrine はこれのための簡単なメソッドを提供します: Doctrine_Record::copy()。
$copy = $user->copy();
copy() でレコードをコピーすると、古いレコードの値を持つ新しいレコード (状態 TDIRTY) が返され、そのレコードの関係がコピーされることに注意してください。リレーションもコピーしたくない場合は、copy(false) を使用する必要があります。
関係なしでユーザーのコピーを取得する
$copy = $user->copy(false) ;