2013-05-13 48 views
0

我控制器EcommerceController.php ,它看起來像這樣:形式返回錯誤,物業沒有定義

public function actionLegalisation() 
    { 
     $model = new Product(); 

$this->render('legalisation', array('model'=>$model, 'documents'=>$documents, 'countriesIssued'=>$countriesIssued, 'countries'=>$countries, 'flag'=>$flag)); 
    } 

而且在合法化查看我有:

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'legalisationForm', 
    'action' => $this->createUrl($this->id."/".$this->action->id), 
    'enableAjaxValidation'=>true, 
    'clientOptions' => array(
    'validateOnSubmit'=>true, 
    'validateOnChange'=>true, 
    'validateOnType'=>false, 
    ), 
)); ?> 
    <table> 
     <tr> 
      <td> 
       <?php echo $form->dropDownList($model, 'countriesIssued', $select = array($_POST['countriesIssued'])); ?> 
      </td> 
     </tr> 
    </table> 

驗證碼返回給我一個CExeption 屬性「Product.countriesIssued」未定義。

當我做這一切的使用cHTML等所有的東西都很好,一個有一個下拉列表滿了國家名,就像這樣:

<?php echo CHtml::dropDownList($form, 'countriesIssued', $select = array($_POST['countriesIssued']), 
        CHtml::listData($countriesIssued, 'code', 'name')); ?> 

我需要的下拉列表中是字段值(國家)誰能幫我? 謝謝。

回答

2

此波紋管代碼將提供一些幫助來克服您面臨的錯誤。

擰這在你的控制器

$criteria = new CDbCriteria; 
    $criteria->order = 'country_name ASC'; 
    $locations = Countries::model()->findAll($criteria); 
    $dataAry['countries'] = CHtml::listData($locations, 'id', 'country_name'); 
    $this->render('index', $dataAry); 

寫在你的表格

echo $form->dropDownList($model, 'attribute', $countries, array('prompt' => 'Select Country')); 
    echo $form->error($model, 'attribute'); 

欲瞭解更多信息,請訪問http://www.yiiframework.com/forum/index.php/topic/9693-cactiveform-dropdownlist-selectedselected/