2012-10-26 5 views
0

저는 CakePHP 게임을 처음 접했고 겉으로보기에는 간단한 문제를 해결하는 방법에 대한 통찰력이 필요합니다. 필자는 프레임 워크를 활용하고 Google만으로이 문제를 해결하기 위해 고심하고있는 새로운 직장에서 몇 가지 내부 웹 사이트를 물려 받았습니다.입력 양식에 플로트 표시

내가 가지고있는 것은 폼을로드하고 데이터베이스에 이미있는 데이터로 채우는 뷰입니다. 이 동작을하는 세 가지 필드가 있으며 모두 동일한 문제가 있습니다.

필드가보기에 같은 선언 : 그들은 float 데이터 형식이로 선언하고, 따라서, 브라우저에로드 할 때 가끔 수레로 표시됩니다 데이터베이스 내에서

echo $this->Form->input('hotel_costs'); 
echo $this->Form->input('misc_costs'); 

는 수행 (15.7 15.699999999되고 ...)

주위를 둘러 보면 내 문제를 해결할 수있는 NumberHelper와 같은 도우미가있는 것처럼 보이지만 양식 값과 함께 기능을 포함시키는 방법을 알지 못합니다. 나는 틀린 장소에서 완전히보고 있는가?

감사합니다.

답변

2

에서 해당 작업의 데이터

  • var_dump()
  • 코드입니다. 당신은 필드에서 float 값을 원하지 않는다고 말하지만, 소수점 이하 자리수로 반올림을 원하십니까? 이사회 전반에 걸쳐 적용해야합니다. 사용자 정의보기 또는 구운보기가 있습니까? (나는이 질문에 대한 의견으로 위의 질문을하지만 내 담당자는 충분하지 않습니다.)

  • +0

    데이터베이스 필드의 float 값은 15.7로 저장됩니다. 그러나 CakePHP가 폼을 빌드 할 때 15.699999로 필드를 채 웁니다. 나는 입력 필드를 사용하여 값을 표시, 변경 및 저장하는 기능에 영향을 미치지 않으면 서 입력 필드에 부동 소수점 값을 적절하게 표시하는 방법을 모색 중입니다 (필요에 따라 반올림되거나 잘림). 이것은 사용자 정의보기입니다. 나는 "구운"의미가 무엇인지 확신하지 못합니다. – Grambot

    +0

    이 대답을 확인하십시오. afterFind 메서드를 작성해야한다고 생각합니다. http://stackoverflow.com/a/5270372/1778068 구운다면, 당신은 당신의 코드를 생성하기 위해 콘솔 명령어 인 cake bake를 사용 했는가? – marvin

    +0

    이벤트 핸들러를 작성하는 대신,이 예제가이 매뉴얼 페이지 http : //의 Common Options 섹션에서 보여주는 것처럼, 폼의 입력 필드에 대한 "기본"값으로 반올림 된 값을 쓰도록 뷰를 변경할 수도 있습니다 book.cakephp.org/2.0/en/core-libraries/helpers/form.html. '설탕'을 '$ this-> Number-'로 대체해야합니다. 'echo $ this-> Form-> input ('ingredients ', array ('default '=>'Sugar ')) > 정밀도 ($ this-> YourModelName-> hotel_costs, 2); ' – marvin

    2

    입력을 강제 할 수 있습니다. [type = text], 케이크가 입력 유형을 추측하려고하지 않습니다.

    $this->Form->input('hotel_costs', array(
        'type' => 'text' 
    )); 
    $this->Form->input('misc_costs', array(
        'type' => 'text' 
    )); 
    

    그래도 문제가 해결되지 않으면 다시 게시하십시오.

    1. 어떤 컨트롤러 작업 (추가/색인/편집)이 필요합니까? 데이터베이스 그것은 텍스트로 입력 유형을 강제로 할 수 없다
    관련 문제