という名前の複合主キーを設定することはできません。現時点では、ローダーコマンドは単純な主キーを持つテーブルでうまく動作しています。しかし、今私は(3つの列の)合成された主キーで構成されるテーブルを持っています。 2つの列(「id」と「language」)は、別の表への外部キーです(1:n関係)。ドクトリン2 - 私は、現時点では私はその後orm.yml・ファイルおよびロード・データベース・フィクスチャでMySQLデータベースを生成する治具ローダコマンドを、書いている「ID」
私は治具ローダコマンドの呼び出しを行い、このエラーメッセージ、取得しています:
Message: An exception occurred while executing 'INSERT INTO xyzInt (id, language, name, text, update, userID, complete) VALUES (?, ?, ?, ?, ?, ?, ?)' with params [null, "com", "peter", "text", "2017-03-06 18:00:00", 1, 0]:
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'update, userID, complete) VALUES (NULL, 'com', 'peter', 'text', '2017-03-' at line 1
をそして、私のxyzInt.orm.ymlは次のようになります。
Entity\Xyzint:
type: entity
table: xyzInt
id:
id: { type: integer, options: { default: 0, unsigned: true }, generator: { strategy: NONE } }
language: { type: string, length: 2, options: { default: '' }, generator: { strategy: NONE } }
name: { type: string, length: 30, options: { default: '' }, generator: { strategy: NONE } }
fields:
...
manyToOne:
Abc:
targetEntity: Abc
inversedBy: Xyzint
joinColumn:
name: id
referencedColumnName: abcID
そして今、私は」 2つの質問があります:
- フィールド "id"が正しく設定されていない(nullのままです)のはなぜですか?
- manyToOne相関が複合主キーのために正しく行われていますか?または、私は "joinColumn"の代わりに "joinColumns"を使用する必要がありますか?私は「joinColumnsは」あなたは私の短い例を与えることができます使用する を持っているときに、どのように orm.yml-の構成は次のようになりますか?私は今までgoogleで正しい 答えを見つけることができませんでした。あなたの助けのための
Thanxs。
Thanxs。しかし、私は個別に自動生成された特別な値なしでフィールド "id"を設定したい。したがって、私は '$ connection-> query( 'SET FOREIGN_KEY_CHECKS = 0'); 'を使用します。 – Stef
追加の注意:1つの" id "にはさらに多くのデータベースエントリが存在することが許されるべきです。自動生成された "id"は意味をなさない。 – Stef
ドクトリンがあなたのためにそれを行うことができるとき、なぜあなたは自分のIDを設定するのですか?あなたの2番目のコメントでは、実際にはidが複数のエントリに一致することを意味していますか?とにかく、あなたの質問はなぜidがnullであるかということでした。なぜなら、あなたはそれが正しい値を提供していないからです。私の答えと同じように自動的に行うこともできますし、YAMLを使って手動で行う方法もGoogleで確認できます。 – mickdev