亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Symfony 5 表單創建失敗

Symfony 5 表單創建失敗

PHP
小唯快跑啊 2023-07-01 17:17:00
我使用命令向我的項目( BookAuthor、BookSeries )添加了 2 個實體php bin/console make:entity,然后使用make:form命令生成了一個表單類。在測試時,我添加了一些作者,但是當我嘗試打開路線時,add/Series我收到此錯誤消息:App\Entity\BookAuthor 類的對象無法轉換為字符串Form Builder 類的相關代碼:class BookSeriesType extends AbstractType{    public function buildForm(FormBuilderInterface $builder, array $options)    {        $builder            ->add('title')            ->add('description')            ->add('SeriesAuthor', )            ->add('Submit', SubmitType::class)        ;    }    public function configureOptions(OptionsResolver $resolver)    {        $resolver->setDefaults([            'data_class' => BookSeries::class,        ]);    }}SeriesAuthor應該從數據庫中獲取可用作者的列表。BookSeries 與 BookAuthor 實體具有 OneToMany 關系。雖然 BookAuthor 表為空,但添加作者后頁面加載正常,但頁面開始出現錯誤Controller.php 文件中的相關代碼:public function addBookSeries(Request $request)    {        $new_series = new BookSeries();        $form = $this->createForm(BookSeriesType::class, $new_series);        $form->handleRequest($request);        if($form->isSubmitted() && $form->isValid()){            $em = $this->getDoctrine()->getManager();            $em->persist($new_series);            $em->flush();            return $this->redirect($this->generateUrl('post.manage'));        }        return $this->render("post/create.html.twig",[            'form' => $form->createView()        ]);
查看完整描述

2 回答

?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

錯誤消息說明了您需要了解的所有信息。您正在嘗試將對象轉換為字符串。在本例中為 BookAuthor。我假設這些實體之間存在一對多或多對多的關系。在這種情況下,在 BookSeriesType 中,SeriesAuthor 應該是EntityType。

查看完整回答
反對 回復 2023-07-01
?
慕容森

TA貢獻1853條經驗 獲得超18個贊

顯然我必須對表單生成器進行一些配置。

public function buildForm(FormBuilderInterface $builder, array $options)

? ? {

? ? ? ? $builder

? ? ? ? ? ? ->add('title')

? ? ? ? ? ? ->add('seriesAuthor', EntityType::class, [

? ? ? ? ? ? ? ? 'class' => BookAuthor::class,

? ? ? ? ? ? ? ? 'choice_label' => function(BookAuthor $author) {

? ? ? ? ? ? ? ? ? ? return sprintf('%s %s', $author->getFirstname(), $author->getLastname());

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? 'placeholder' => 'Choose an author'

? ? ? ? ? ? ])

? ? ? ? ? ? ->add('description')

? ? ? ? ? ? ->add('Submit', SubmitType::class)

? ? ? ? ;

? ? }


查看完整回答
反對 回復 2023-07-01
  • 2 回答
  • 0 關注
  • 155 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號