ここで小さな何かが欠けている瞬間があるように感じます。Dotrine DBAL 2.2.x / 2.3.xinsert()
のコンポーネントでメソッドを使用すると問題が発生します。QueryBuilder
私はいくつかの調査を行いました.DBALドキュメントのQueryBuilderページのスニペットは次のとおりです
\Doctrine\DBAL\Query\QueryBuilder は、SELECT、INSERT、UPDATE、および DELETE クエリの構築をサポートしています。作成するクエリの種類は、使用するメソッドによって異なります。
簡単にできるコード例をさらに説明します。
$builder = $connection->createQueryBuilder();
$result = $builder
->insert('table_name')
// ...
挿入モードでクエリ ビルダーを使用するには。私がそうするときを除いて、私はここでPHPから苦情を受けます:
致命的なエラー: 未定義のメソッド Doctrine\DBAL\Query\QueryBuilder::insert() への呼び出し
QueryBuilder.php ソースコードのさらなる検査について
method への参照も、これを継承するクラスも、挿入メカニズムを公開する可能性insert(...)
のある に追加された特性もありません。QueryBuilder
さらに、これが一番上に表示されます。
/* The query types. */
const SELECT = 0;
const DELETE = 1;
const UPDATE = 2;
挿入クエリの種類はありません。ただし、次の興味深いメソッド コメントがありexecute()
ます。
/**
* Execute this query using the bound parameters and their types.
*
* Uses {@see Connection::executeQuery} for select statements and {@see Connection::executeUpdate}
* for insert, update and delete statements.
*
* @return mixed
*/
結論:
これは何百人ものメンテナーが参加する大規模なプロジェクトであり、多数のバージョンにわたって非常に基本的なものを台無しにするよりも、ここで私の解釈の疑いを見つける可能性が高くなりますが、何が欠けているのかを一生理解することはできません. 明らかなことを見るのを手伝ってください。