2014-11-19 2 views
1

typo3 flow에서 유체에서 /로 datetimes를 가져 오거나 설정하는 표준 방법은 무엇입니까?typo3 흐름에서 유체에서 datetime을 가져 오거나 설정하는 표준 방법은 무엇입니까?

기본 f : form.textfield처럼 편집 가능한 html 필드가 있습니까? datetime을 입력하고 편집하고 유지할 수 있습니까?

예를 들어 <f:format.date format="d.m.Y - H:i:s">{productArticle.classdate}</f:format.date> 과 같이 datetime을 표시 할 수 있지만이 경우 값은 null이 아니며 아무것도 표시되지 않고 어쨌든 입력 할 수 없습니다. 일부 버전에서는 속성이 f : format.date와 함께 작동합니까? 나는 그것을 시험해 볼 때 "등록되지 않은 재산"을 얻는다.

페이지에 두 개의 필드가 있어야합니다 (날짜와 시간 중 하나는 작업에 함께 사용 했습니까?

감사

답변

4

나는 그것이 표준 방법 인 경우에 확실하지 않다, 개인적으로 나는 그것을 좋아하지 않아 .. 그러나 그것은 다음과 같이 수행 할 수 있습니다 : 새/편집 작업에 대한 유체에서

:

당신이 초기화 * 액션을 추가하고 표준 당신을 위해 좋지 않은 경우 \ 날짜 시간에 대한 propertyMappingConfiguration를 업데이트 할 수 있습니다 컨트롤러에서
<f:form action="create" objectName="girlfriend"> 
... 
<f:form.textfield property="birthDate" placeholder="1991-12-30 - 18:25:58" value="{newGirlfriend.birthDate->f:format.date(format:'Y-m-d - H:i:s')}" /> 
... 
</f:form> 

(이에 대한 작업을 수행 할 수 있습니다 모두 만들고 업데이트 작업) :

public function initializeCreateAction() { 
    $mappingConfig = $this->arguments['girlfriend']->getPropertyMappingConfiguration(); 
    $mappingConfig->forProperty('birthDate')->setTypeConverterOption(
     'TYPO3\Flow\Property\TypeConverter\DateTimeConverter', 
     \TYPO3\Flow\Property\TypeConverter\DateTimeConverter::CONFIGURATION_DATE_FORMAT, 
     'Y-m-d - H:i:s' 
    ); 
} 

때로는 컨트롤러에 직접 객체를 전달하지 않고 서비스 계층에 객체를 생성하는 것이 더 쉽습니다. 또한 TypeConverters를 살펴볼 수도 있습니다 - 그들은 initializeActions를 필요로하지 않고 더 높은 우선 순위를 설정하는 기존의 것들을 쉽게 오버라이드 할 수 있습니다.

+0

감사합니다. 당신의 솔루션이 내가 한 것보다 낫다는 것을 확신합니다. , 하나는 날짜를위한 것입니다. 그리고 나서 그것들을 액션에 넣으십시오. 예를 들어'$ temporary = $ this-> request-> getHttpRequest() -> getArguments(); $ datetime = $ 임시 [ 'classdate']. ' $ 임시 [ 'classtime']; \t \t \t $ date = new \ DateTime ($ datetime); \t \t \t // echo $ date-> format ('Y-m-d H : i : s'); 주사위; \t \t \t $ productArticle-> setClassDate ($ date); ' –

+0

인자를 얻는 것만으로도 createAction (ProductArticle $ productArticle, $ date, $ time) {$ dateWithTime = $ date}과 같이 할 수 있습니다. ''. $ time; } –

관련 문제