ZF2 コントローラの 1 つで作業中に、次のエラーが発生しました。
Doctrine\DBAL\DBALException
File: /var/www/microweb2/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:47
Message: An exception occurred while executing 'INSERT INTO quotes (name, email, phone_number, budget, content, date_posted, service_id) VALUES (?, ?, ?, ?, ?, ?, ?)' with params [null, null, null, null, null, null, null]:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'name' cannot be null
まあ、これはかなり基本的なエラーのようですが、解決策が見つかりません。プロセスは次のとおりです。フォームを作成して表示し、それをエンティティにバインドしますApplication\Entity\Quote
。次に、ハイドレーターを で設定しDoctrineHydrator
ます。リクエストが の場合POST
、フォームの値にリクエストの値を設定し、InputFilter で検証します。残念ながら、isValid()
returnの場合true
、DB はエラーを返します...なぜ値が NULL なのですか?
これが私のコントローラーコードです: http://pastebin.com/JVK5xE9r
ここに私のエンティティがあります: http://pastebin.com/NhtaBNW9
これが私のものAbstractEntity
です:http://pastebin.com/s4L7Cquu
ここに私のフォームがあります: http://pastebin.com/t7Kmzfk5
これが私のものAbstractForm
です:http://pastebin.com/36WeyKBf
質問に含めるにはコードが多すぎます。
メソッドはget()
エンティティに対してset()
も機能します。しかし、それが私が持っている唯一の問題です!だから私は理由を知りたいです。
うまくいかない理由を誰かに教えてもらえたら、それは素晴らしいことです。