Yii dropDownlist 与CHtml:listData实例详解

jerry Yii 2015年08月23日 收藏

1.ProductController(Controller)

public function actionCreate()
 {
  $model=new Product;
  // Uncomment the following line if AJAX validation is needed
  // $this->performAjaxValidation($model);
  if(isset($_POST['Product']))
  {
   $model->attributes=$_POST['Product'];
   if($model->save())
    $this->redirect(array(‘view’,'id’=>$model->id));
  }
  $category=Category::model()->findAll();
  $this->render(‘create’,array(
   ’model’=>$model,
   ’category’=>$category,
  ));
 }

2.product.php(Model,主要语句)

public function relations()
 {
  // NOTE: you may need to adjust the relation name and the related
  // class name for the relations automatically generated below.
  return array(
  ’category’=>array(self::BELONGS_TO,’Category’,'category_id’),
  );
 }
 /**
  * @return array customized attribute labels (name=>label)
  */
 public function attributeLabels()
 {
  return array(
   ’id’ => ‘ID’,
   ’name’ => ‘Name’,
   ’category_id’ => ‘Category’,
  );
 }

3.create.php(视图文件,主要语句)

<?php echo $this->renderPartial(‘_form’, array(‘model’=>$model,’category’=>$category)); ?>

4._form.php

<div>
  <?php echo $form->labelEx($model,’category_id’); ?>
  <?php echo $form->dropDownlist($model,’category_id’,CHtml::listData($category,’id’,'name’)); ?>
    <?php echo $form->error($model,’category_id’); ?>
 </div>