2013-08-05 59 views
0

我需要上傳Yii文件。鑑於我行: <?php echo CHtml::activefileField($qualificationModel, 'picture'); ?>,其中POST中兩個相同的屬性

$ qualificationModel =新SkillsMapping;控制器的

部分:

$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)); 
    } 
} 

的時候我選擇照片並點擊按鈕我有一個錯誤Picture cannot be blank. 檢查POST請求我創辦奇怪的事情之後 - 請求有兩個屬性 - SkillsMapping[picture]=SkillsMapping[picture]=Lighthouse.jpg。如果在這篇文章的頂部評論回聲,這兩個屬性都會消失。如何刪除空的SkillsMapping[picture]以及它爲什麼要去?謝謝。

回答

2

您不需要刪除空的隱藏字段,因爲它在那裏可以幫助您,而不會傷害您(Yii本身會自動將它放在那裏;請參閱relevant part of the source)。

隱藏的字段在那裏,當沒有文件被選擇上傳時,$_POST填充了一個空值。如果文件已選擇,文件輸入控件將提供自己的POST值,覆蓋空的「保護值」。

+0

好的,但爲什麼我的模型不驗證? – f0rtis

+0

@ f0rtis:我不知道。使用'$ skillsModel-> getErrors()'來查明。 – Jon

相關問題