2016-06-24 6 views
1

이것은 지금 당분간 나를 괴롭 히고 있습니다. CakePHP Formhelper가 생성하는 선택 상자의 기본 집합 대신 Javascript datetimepicker를 사용하고 싶습니다.Cakephp 3.x - datetimepicker에 대한 텍스트로 datetime 입력

echo $this->Form->input('start_time', ['type' => 'text', 'class'=>'datetime']); 

을하지만이 다음 로케일 형식으로 값을 변환합니다 케이크 같은 다른 문제를 소개합니다 : 쉬운 솔루션이 될 것 같다. 또한 일반적인 관점에서 작동하는 솔루션을 선호하는, 그래서 날짜 입력 템플릿을 변경 들여다 : 내가 들어 왔로

//AppView.php 
class AppView extends View 
{ 
public function initialize() 
{ 
    $this->Form->templates(['dateWidget' => '<input type="text" class="datetime" name="{{name}}"{{attrs}}/>']); 
} 

}

이, 그러나 가깝다. Formhelper는 비어있는 이름 속성을 가진 훌륭한 텍스트 입력을 출력하며 목적을 달성하지 못합니다.

datetimeinput은 기본적으로 선택 필드를 출력하기 위해 배선되어 있기 때문에 여기에 대한 나의 접근 방법은 혼란 스럽습니다.

하지만 올바른 방법은 무엇입니까?

+0

현지화 된 형식의 문제점은 무엇입니까? 대개 사용자가이 일반적인 'YYYY-MM-DD'SQL 형식 대신 사용자에게 표시하려고하는 것입니다. 당신이 여기서 보여주는 것은 내가하고있는 일이며,'text'를 사용하고, JS picker가 같은 지역화 된 포맷을 사용하도록 설정합니다. – ndm

+0

당신이 옳다고 생각합니다. 보다 간소화 된 버전을 제공하는 것이 좋았 겠지만, 당신이 말하는 것은 효과가 있습니다. 현지화 된 형식을 패턴에 맞게 사용자 정의 할 수 있습니까? –

+0

사실 나는 아직도 이런 일이 일어나지 않습니다. Cake는 스트레이트 텍스트와 호환되지 않는 시간 객체를 사용하기 때문에 입력은 텍스트 입력을 사용할 때 유효하지 않습니다. –

답변

1

나는 일시적으로이 선으로이 문제를 해결 한 :

echo $this->Form->input('date', ['class' => 'datepicker-input', 'type' => 'text', 'format' => 'Y-m-d', 'default' => date('Y-m-d'), 'value' => !empty($item->date) ? $item->date->format('Y-m-d') : date('Y-m-d')]); 

이 필드에 내 날짜 선택기 입력 클래스를 추가, 텍스트 필드를 표시합니다. 날짜 선택 도구가 현재 날짜를 즉시 읽을 수 있도록 기본 날짜 값을 y-m-d 형식으로 표시합니다.

이렇게하면이 데이터를 더 이상 문제없이 데이터베이스에 저장할 수 있습니다.

+0

안녕하세요. datepicker를 사용하여 종료 한 날짜를 알려주시겠습니까 ?? 감사! – fabricio

+0

jQuery datepicker를 사용했습니다. – rayhan