2013-08-05 5 views
0

Yii으로 파일을 업로드해야합니다. 보기에서 내가 가진 행 : <?php echo CHtml::activefileField($qualificationModel, 'picture'); ?>, 어디POST의 두 속성이 동일합니다.

$ qualificationModel는 = 새로운 SkillsMapping; 컨트롤러의

부 : 내가 사진을 선택하고 내가 POST의 내가 이상한 일을 설립 요청을 확인한 후 오류 Picture cannot be blank. 이 버튼을 클릭

$skillsModel = SkillsMapping::model(); 
$skillsModel->attributes=$_POST['SkillsMapping']; 
$skillsModel->picture=CUploadedFile::getInstance($skillsModel,'picture'); 
echo var_dump($_FILES); 
if($skillsModel->validate()) 
{ 
    if($skillsModel->save()) 
    { 
     $skillsModel->picture->saveAs('images/qual-pics'); 
     $this->redirect(array('view','id'=>$model->user_id)); 
    } 
} 

-SkillsMapping[picture]=SkillsMapping[picture]=Lighthouse.jpg - 요청이 두 가지 속성이 있습니다. 이 게시물의 상단에 주석으로 표시된 경우 두 속성이 사라집니다. 빈 SkillsMapping[picture]을 제거하는 방법과 그 이유는 무엇입니까? 감사.

답변

2

비어있는 숨겨진 필드를 제거해야 할 필요가 없습니다. 도움이되므로 도움을받을 수 있습니다 (Yii 자체는 자동으로 그곳에 배치 함, relevant part of the source 참조).

업로드 할 파일을 선택하지 않은 경우 숨김 필드가 있으므로 $_POST에 빈 값이 채워집니다. 파일 이 선택되어 있으면 파일 입력 컨트롤이 빈 "가드 값"을 덮어 쓰는 자체 POST 값을 제공합니다.

+0

그래, 내 모델이 유효성을 검사하지 않는 이유는 무엇입니까? – f0rtis

+0

@ f0rtis : 잘 모르겠습니다. 찾으려면'$ skillModel-> getErrors()'를 사용하십시오. – Jon