私は symfony2 フレームワークで Web サイトを開発しており、Doctrine を ORM として使用しています。単純な双方向の OneToMany 関係を形成する 2 つのエンティティがあり、一方がカテゴリで、多がエントリです。ユーザーがカテゴリと対応するエントリを管理できるようにするために、私は SonataAdminBundle を使用しています。管理バンドルに簡単なファイルのアップロードも実装しました。新しいエントリを保存しようとすると、次のエラーが表示されます。
An exception occurred while executing 'INSERT INTO Entry
(title, ent_text, img, author, pub_date, slug, cat_id) VALUES (?, ?, ?, ?, ?, ?, ?)'
with params ["BLa", null, "asdf.jpg", "User", null, "bla", 1]:
特にフォームの必要なフィールドがすべて入力されているため、これがどこから来たのかまったくわかりません。対応するすべてのクラスは次のとおりです。読みやすくするために、ペーストビンのリンクを投稿することにしました。
エントリ エンティティ: http://pastebin.com/vp8Ym4wz
カテゴリ エンティティ: http://pastebin.com/vLMJyxdW
EntryAdmin クラス: 申し訳ありませんが、ここに投稿する必要がありました。評判のために 2 つのリンクしか許可されていません。また、何らかの理由で最初の数行が適切にフォーマットされません。それについても申し訳ありません。
namespace S4P\MainBundle\Admin;
use Sonata\AdminBundle\Admin\Admin;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Form\FormMapper;
class EntryAdmin extends Admin {
protected function configureFormFields(FormMapper $formMapper) {
$formMapper
->add('category', 'entity', array('class' => 'S4PMainBundle:Category', 'property' => 'title'))
->add('text', null, array('required' => true))
->add('image', 'file', array('required' => false))
->add('author', null, array('required' => true))
->add('title', null, array('required' => true));
}
protected function configureDatagridFilters(DatagridMapper $datagridMapper) {
$datagridMapper
->add('text')
->add('img_name')
->add('author')
->add('title');
}
protected function configureListFields(ListMapper $listMapper) {
$listMapper
->add('text')
->add('img_name')
->add('author')
->add('title');
}
}
どんな助けにも感謝します。
よろしくベネ