2014-09-01 3 views
0
나는 날짜 선택기로 프로그램에서 일하고 있어요

를 저장할 수 없습니다,하지만 난 MySQL 데이터베이스에 제출하려고 할 때 다음과 같은 오류가 있습니다 :날짜 선택기는 MySQL의

CDbCommand failed to execute the SQL statement: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '0000-00-00' for key 'Dag'. 

코드를 그 전 날짜 선택기에 사용하는 것은 :

<div class="row"> 
<?php echo $form->labelEx($model,'Dag'); ?> 
    <?php 

    $form->widget('zii.widgets.jui.CJuiDatePicker', array(
     'model' => $model, 
     'attribute' => 'Dag', 
     'htmlOptions' => array(
     'size' => '10',   // textField size 
     'maxlength' => '10', // textField maxlength 

     ), 
    )); 
    ?> 
<?php echo $form->error($model,'Dag'); ?> 
</div> 

는 나는 이미 말했다 0000-00-00라는 이름의 날짜입니다하지만 난 하나,하지만 날짜 2014년 9월 2일를 추가하지 않은 알아! $model->Dag = $_POST['ModelName']['Dag']

경우 : 속성 Dag이 당신의 YII ActiveRecord 모델, DatePicker에서에서 전송 된 다음 새 값으로 unsafe 간주 (그리고 $model->attributes = $_POST['ModelName'];에 의해 가능하게 할당) 당신과 같이 수동으로 지정하지 않으면 할당되지 않습니다 경우

+1

, 당신은 무엇을 체결 않습니다 : 당신은 당신이 또한 모델의 안전과 Dag 속성을 설정할 수, 싶어? –

+0

이미 0000-00-00이라는 날짜가 있습니다. 하지만 내가 입력하고 싶은 문자열은 2014-09-02입니다. – MvanOeffel

+1

좋아, 그래서 당신은'2014-09-02' (또는 당신이 보낸 * 생각)을 보냈고, MySQL은'0000-00-00'을 삽입하려고합니다. 분명히, 당신은'0000-00-00'을 삽입하도록 말하지 않았으므로 그것이 왜 그렇게 생각하는지 알아 내려고합니다. 어디서 시작하니? –

답변

0

당신이 침착 오류 메시지를 읽은 후

public function rules() { return array( ..., array('Dag', 'safe'), ); }