2014-04-14 67 views
1

我有视图:数据不在数据库(Yii框架)寄存器

... 
<div class="row"> 
     <?php echo $form->labelEx($model,'content'); ?> 
       <?php $this->widget('application.extensions.ckeditor.CKEditor',array( 
         'model'=>$model, 
         'attribute'=>'content', 
         'language'=>'en', 
         'editorTemplate'=>'full',)); 
       ?> 
     <?php echo $form->error($model,'content'); ?> 
    </div> 

    <div class="row"> 
     <?php echo $form->labelEx($model,'status'); ?> 
     <?php echo $form->dropDownList($model,'status', array('0' => 'Not published', '1' => 'Published')); ?> 
     <?php echo $form->error($model,'status'); ?> 
    </div> 

     <div class="row"> 
     <?php 
      echo $form->labelEx($model,'category_id'); 
      echo CHtml::dropDownList('category_id','', Category::allCategory(), 
       array(
       'ajax' => array(
       'type'=>'POST', //request type 
       'url'=>CController::createUrl('subcategory/dynamicSubCategories'), //url to call. 
       //Style: CController::createUrl('currentController/methodToCall') 
       'update'=>'#subcategory_id', //selector to update 
       //'data'=>'js:javascript statement' 
       //leave out the data key to pass all form values through 
      ))); 
      echo $form->error($model,'category_id'); 
     ?> 
     </div> 

     <div class="row"> 
     <?php 
      echo $form->labelEx($model,'subcategory_id'); 
      echo CHtml::dropDownList('subcategory_id','', array()); 
      echo $form->error($model,'subcategory_id'); 
     ?> 
     </div> 

    <div class="row buttons"> 
     <?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?> 
    </div> 

<?php $this->endWidget(); ?> 
... 

数据从字段“CATEGORY_ID”和“subcategory_id”不在数据库中写。所有其他字段成功注册。提示我如何将此字段与表单结合并解决此问题?

回答

-1

这是因为所保存的数据,应该是车型阵列中的数据的一部分,因此改变你的新要反映的字段名称MODELNAME[ATTRIBUTENAME]

echo CHtml::dropDownList('MODELNAME[category_id]', ... 

或者干脆更改为activeDropdownList

+0

你是给予好评从其他帐户您的回答,这不是聪明 – Alex

+0

这好笑:D – tinybyte

+0

http://pastebin.com/Yn87cJJU SubcategoryController.php,http://pastebin.com/R93qXAaq_form。我有个问题。我编辑了一段代码,但AJAX不再适用于我。例如当我在第一个dropDownList中选择值时,会自动将数据库中的数据加载到第二个dropDownList中。现在所有这些都不起作用。提示我需要做什么? – user3380172

0

使用此方法dropDownLists

echo CHtml::activeDropDownList($model, 'category_id',Category::allCategory() 
.... 

或者更好的使用形式方法

echo $form->dropDownList($model, 'category_id', Category::allCategory() 
.... 
+0

哇,不好意思复制掉别人的答案! – tinybyte

+0

你在说模型规则! – tinybyte

+0

但后来我看到还有其他的错误。这不是复制,你用MODELNAME [ATTRIBUTENAME]的答案有点愚蠢。 – Alex