第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何在 Symfony 實體中從數(shù)組中進行選擇

如何在 Symfony 實體中從數(shù)組中進行選擇

PHP
郎朗坤 2022-10-14 15:51:19
我是 symfony 的新手,還在學習,我的問題是如何在一個包含靜態(tài)選項數(shù)組的表單中填充選擇下拉列表。假設我有一個名為 Cake 的類,我希望能夠從在同一個 CakeEntity 中創(chuàng)建status的Cake數(shù)組中填充一個下拉列表:statuses<?phpnamespace App\Entity;use Doctrine\ORM\Mapping as ORM;/** * @ORM\Entity(repositoryClass="App\Repository\CakeRepository") */class Cake{    /**     * @ORM\Column(type="string", length=50)     */    private $status;    private $statuses = array(        'not_ready' => 'Not Ready',        'almost_ready' => 'Almost Ready',        'ready'=>'Ready',        'too_late'=>'Too late'    );    public function getStatus(): ?string    {        return $this->status;    }    public function setStatus(string $status): self    {        $this->status = $status;        return $this;    }    public function getStatuses()    {       return $this->statuses;    }}我的控制器看起來像:namespace App\Controller;use App\Entity\Cake;use App\Form\CakeType;use App\Repository\CakeRepository;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;/** * @Route("/cake") */class CakeController extends AbstractController{    /**     * @Route("/new", name="cake_new", methods={"GET","POST"})     */    public function new(Request $request): Response    {        $cake = new Cake();        $form = $this->createForm(CakeType::class, $cake);        $form->handleRequest($request);        if ($form->isSubmitted() && $form->isValid()) {            $cake->setCreatedAt(\DateTime::createFromFormat('d-m-Y', date('d-m-Y')));            $cake->setCreatedBy(1);            $entityManager = $this->getDoctrine()->getManager();            $entityManager->persist($cake);            $entityManager->flush();            return $this->redirectToRoute('cake_index');        }        return $this->render('cake/new.html.twig', [            'cake' => $cake,            'form' => $form->createView(),        ]);    }
查看完整描述

1 回答

?
哆啦的時光機

TA貢獻1779條經(jīng)驗 獲得超6個贊

您可以聲明getStatuses為Cake,static或使用公共常量。例如:


class Cake

{

    // with static variables


    private static $statuses = [

        'not_ready'    => 'Not Ready',

        'almost_ready' => 'Almost Ready',

        'ready'        => 'Ready',

        'too_late'     => 'Too late',

    ];


    public static function getStatuses()

    {

        return self::$statuses;

    }


    // or with public const


    public const STATUSES = [

        'not_ready'    => 'Not Ready',

        'almost_ready' => 'Almost Ready',

        'ready'        => 'Ready',

        'too_late'     => 'Too late',

    ];

}

這似乎是合理的,因為返回值不是實例而是特定于類的。


然后你可以使用:


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

{

    $builder->add('status', ChoiceType::class, [

        'choices'=> Cake::getStatuses(),

    ]);


    // or


    $builder->add('status', ChoiceType::class, [

        'choices'=> Cake::STATUSES,

    ]);

}

如果選擇實際上取決于給定的 Cake 實例,您可以通過選項數(shù)組或使用表單事件傳遞它。


查看完整回答
反對 回復 2022-10-14
  • 1 回答
  • 0 關注
  • 81 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號