Как я могу вывести дочернее представление с динамически сгенерированным CaptureTo для addChild() в контроллере

Предоставление следующего руководства: введите здесь описание ссылки

Довольно легко иметь дочернее представление и отображать его, когда я знаю, что captureTo используется в контроллере (например, «<?php echo $this->article ?>»), но могу ли я сделать то же самое, когда я динамически генерирую модели представлений и назначаю их динамически сгенерированному CaptureTo для addChild() функция:

        foreach ($studentEvaluations as $studEval) {

            $studEvalId = $studEval->getEvalId();
            $formViewModel = $this->buildStudentEvaluationViewModel($studEval);
            $viewModel->addChild($formViewModel,  $studEvalId);
        }

Я пробовал следующее, но это не работает:

    <?php foreach ($this->viewModel()->getCurrent()->getIterator() as $studId => $studEval) : ?>
        <tr>
            <td><?php echo $this->escapeHtml($studEval->fname); ?></td>
            <td><?php echo $this->escapeHtml($studEval->lname); ?></td>
            <td><?php echo $this->escapeHtml($studEval->formName); ?></td>
            <td><?php echo $this->escapeHtml($studEval->supdated); ?></td>
            <td><?php echo $this->escapeHtml($studEval->screated); ?></td>
            <td>

                <button class="btn btn-primary btn-lg"
                        data-toggle="modal"
                        data-target="#myModal<?php echo $studId; ?>"
                        data-loading-text="Loading..."> Edit
                </button>

                <!-- Modal -->
                <div class="modal fade" id="myModal<?php echo $studId; ?>" tabindex="-1" role="dialog"
                     aria-labelledby="myModalLabel" aria-hidden="true">
                    <div class="modal-dialog">
                        <div class="modal-content">
                            <div class="modal-header">
                                <button type="button" class="close" data-dismiss="modal"
                                        aria-hidden="true">&times;</button>
                                <h4 class="modal-title" id="myModalLabel">Modal title</h4>
                            </div>
                            <div class="modal-body">
                                <p> 

<!-- HERE ->>>>>>>>> -->               <?php echo $studEval ?> 

                                </p>
                            </div>
                            <div class="modal-footer">
                                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                                <button type="button" class="btn btn-primary">Save changes</button>
                            </div>
                        </div>
                    </div>
                </div>
                                </td>


        </tr>
    <?php endforeach; ?>

ИЗМЕНИТЬ 1

Это ошибка, когда я пытаюсь вывести представление следующим образом:

Catchable fatal error: Object of class Zend\View\Model\ViewModel could not be converted to string in C:\dev\projects\OnlineFieldEvaluation\module\OnlineFieldEvaluation\view\online-field-evaluation\online-field-evaluation\test3.phtml on line 62

person vlr    schedule 30.11.2014    source источник


Ответы (1)


Я нашел, как это сделать. Мне просто повезло со знанием PHP:

   <?php foreach ($this->viewModel()->getCurrent()->getChildren() as $studEval) : ?>
        <tr>
            <td><?php echo $this->escapeHtml($studEval->fname); ?></td>
            <td><?php echo $this->escapeHtml($studEval->lname); ?></td>
            <td><?php echo $this->escapeHtml($studEval->formName); ?></td>
            <td><?php echo $this->escapeHtml($studEval->supdated); ?></td>
            <td><?php echo $this->escapeHtml($studEval->screated); ?></td>
            <td>

                <button class="btn btn-primary btn-lg"
                        data-toggle="modal"
                        data-target="#myModal<?php echo $studEval->captureTo(); ?>"
                        data-loading-text="Loading...">

                    Edit <?php echo $studEval->captureTo(); ?>

                </button>

                <!-- Modal -->
                <div class="modal hide fade" id="myModal<?php echo $studEval->captureTo(); ?>" tabindex="-1"
                     role="dialog"
                     aria-labelledby="myModalLabel" aria-hidden="true">
                    <div class="modal-dialog">
                        <div class="modal-content">
                            <div class="modal-header">
                                <button type="button" class="close" data-dismiss="modal"
                                        aria-hidden="true">&times;</button>
                                <h4 class="modal-title" id="myModalLabel">Modal title</h4>
                            </div>
                            <div class="modal-body">
                                <p>
                                    <?php

                                    echo $this->{$studEval->captureTo()};

                                    ?>
                                </p>
                            </div>
                            <div class="modal-footer">
                                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                                <button type="button" class="btn btn-primary">Save changes</button>
                            </div>
                        </div>
                    </div>
                </div>

            </td>


        </tr>
    <?php endforeach; ?>
person vlr    schedule 01.12.2014