[EC-CUBE4] DateTimeType인 폼을 Entity로부터 자동 생성→초의 입력을 할 수 있도록 하는 방법

개요


@FormAppend 어노테이션에서 DateTimeType 양식을 자동으로 생성하면 연월 일시 분의 입력 항목이 자동으로 생성됩니다.
그렇지만, 초까지 입력하고 싶은데, 초의 항목이 표시되지 않는다…!곤란했다.
그럴 때는 @FormAppendoptions 의 설정에 "with_seconds": true 를 더해 주자.

즉 이런 일



관리의 상품 등록 화면에 일시의 항목을 추가하는 예입니다.

변경 전



/app/Customize/Entity/ProductTrait.php
<?php
namespace Customize\Entity;

use Doctrine\ORM\Mapping as ORM;
use Eccube\Annotation as Eccube;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * @Eccube\EntityExtension("Eccube\Entity\Product")
 */
trait ProductTrait
{
    /**
     * @ORM\Column(name="test_date_time", type="datetimetz", nullable=true)
     * @Eccube\FormAppend(
     *  auto_render=true,
     *  type="\Symfony\Component\Form\Extension\Core\Type\DateTimeType",
     *  options={
     *    "required": false,
     *    "label": "テスト日時",
     *    "input": "datetime",
     *    "placeholder": {"year":"----", "month": "--", "day": "--", "hour": "--", "minute": "--"}
     *  }
     * )
     */
    private $test_date_time;



초를 설정할 수 없다…

변경 후



/app/Customize/Entity/ProductTrait.php
    /**
     * @ORM\Column(name="test_date_time", type="datetimetz", nullable=true)
     * @Eccube\FormAppend(
     *  auto_render=true,
     *  type="\Symfony\Component\Form\Extension\Core\Type\DateTimeType",
     *  options={
     *    "required": false,
     *    "label": "テスト日時",
     *    "input": "datetime",
     *    "placeholder": {"year":"----", "month": "--", "day": "--", "hour": "--", "minute": "--", "second": "--"},
     *    "with_seconds": true
     *  }
     * )
     */
    private $test_date_time;
-     *    "placeholder": {"year":"----", "month": "--", "day": "--", "hour": "--", "minute": "--"}
+     *    "placeholder": {"year":"----", "month": "--", "day": "--", "hour": "--", "minute": "--", "second": "--"},
+     *    "with_seconds": true



좋아.

참고



Entity 사용자 정의 | EC-CUBE 4.0 개발 문서 #Entity에서 양식 자동 생성

좋은 웹페이지 즐겨찾기