0

私はドクトリンのチュートリアルを進めていて、問題に遭遇しました。自動ロード機能は動作に適用されませんか?

これは私が従ってきたチュートリアルです。生成時に言及されたテーブル間の関係を自動的に作成する必要がありますが、それぞれの外部 ID 列がテーブルに存在しないというエラー メッセージが表示されます。

これは、実行されるべき特定のコードですが、実行されていないようです。

public function setTableDefinition()
{
    foreach ($this->_options['relations'] as $relation) {
        $columnName = Doctrine_Inflector::tableize($relation) . '_id';
        if (!$this->_table->hasColumn($columnName)) {
            $this->hasColumn($columnName, 'integer');
        }
    }
}

yaml スキーマに列を手動で追加すると、動作は期待どおりに機能します。

誰でも私を助けることができますか?

アドバイスをいただければ幸いです。

4

1 に答える 1

1

例にはタイプミスがあると思います。

if (!$this->_table->hasColumn($columnName)) {
    $this->hasColumn($columnName, 'integer');
}

する必要があります

if (!$this->_table->hasColumn($columnName)) {
    $this->setColumn($columnName, 'integer');
}
于 2009-11-19T00:24:46.053 に答える