في YII ، كيف يمكنني الحصول على نموذج يحلق من خلال مجموعة من الأشياء؟

StackOverflow https://stackoverflow.com/questions/3537908

  •  30-09-2019
  •  | 
  •  

سؤال

أحاول إنشاء yii Activeform يقوم بتحرير القيم من قائمة الكائنات ، المقدمة في جدول.

الفصول المعنية:

class ResultForm extends CFormModel {

    /**
     * @var array[Result]
     */
    public $results; //Filled with an array of Result objects
}

class Result {  
    public $requiredArea;
}

وجهة نظري:

<% $form = $this->beginWidget('CActiveForm'); %>
<table>
   ....
   <% $rowCounter = 0; foreach($resultForm->results as $result): %>
       ...
       <tr>
           ....
           <td>
               <!-- This doesn't work -->
               <% $form->textField($resultForm,
                   "results[$rowCounter]->requiredArea") %>

               <!-- Just displaying the value works -->
               <%= $resultForm->results[$rowCounter]->requiredArea %>
           </td>
           ...
       </tr>
       <% $rowCounter++; endforeach; %>
</table>
<% $this->endWidget(); %>

يتم تقديم حقول النص ولا تشكو yii ، لكنها لا تحتوي على القيم المناسبة.

هل هناك طريقة يمكنني من خلالها جعل هذا العمل ، أم أن هناك نهجًا أفضل للتكرار من خلال مجموعة من الأشياء في شكل؟

هل كانت مفيدة؟

المحلول

أعتقد أنك تريد هذا بدلاً من ما لديك:

<% $form->textField($result,"[$rowCounter]requiredArea") %>

ما تريد القيام به هو تمرير النموذج الذي تكرره أكثر (نتيجة $) بدلاً من نموذج الوالد/النموذج ، وتريد تمرير اسم سمة هذا النموذج كمعلمة ثانية (إلى جانب قيمة $ i/ فهرس الصفيف) بدلا من السمة الفعلية.

راجع هذه الصفحة في دليل YII لمزيد من المعلومات حول الإدخال الجدولي:http://www.yiiframework.com/doc/guide/form.table

أيضًا ، تحقق من ما يفترض أن تكون المعلمات لـ Textfield ():http://www.yiiframework.com/doc/api/chtml#activetextfield-detail

في صحتك!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top