Какой тип данных я должен отправить для просмотра? - PullRequest
1 голос
/ 19 февраля 2011

этот вопрос я задавал себе с того самого дня, как начал программировать в MVC.Должен ли я отправлять для просмотра массивы, заполненные данными, или отправлять их как объекты, которые я извлек из базы данных?Моя модель возвращает мне данные в виде объектов.Как лучше всего создать такую ​​вещь?

$new_data = $model->find_by_id(1);

echo $new_data->name; 

$new_data->name= "whatever";

$new_data->save();

Например.view.php

echo $object->name;

или

echo $array['name']

Язык php:).

Ответы [ 4 ]

5 голосов
/ 19 февраля 2011

Неважно, как данные форматируются, когда они отправляются вашему представлению, если все, что вы делаете с ними, отображает их в той или иной форме.

Тест для разделения представленияосновывается на логике, а не на данных.

  • Вы изменяете данные в представлении?

Этот вопрос лучше задать, чтобы убедиться, что данныеготов к передаче в представление.

1 голос
/ 19 февраля 2011

Это идеально подходит для передачи объектов на ваш взгляд.Если вы начинаете усложнять вещи в своем представлении, то добавьте новый метод к вашему объекту или сделайте это в вашем контроллере и передайте новую переменную в представление.

1 голос
/ 19 февраля 2011

Я создал класс Template, который реализует ArrayAccess, Iterator и Countable.Это позволяет мне использовать вложенные шаблоны объектов, действующих как массивы.Например, мое представление может выглядеть так:

<h1><?php echo $template['title']; ?></h1>
<?php foreach($template->post as $post): ?>
    <h2><?php echo $post['title']; ?></h2>
    <p><?php echo $post['body'] ?></p>
<?php endforeach; ?>

Я даже могу вызывать новые страницы, в зависимости от того, какие файлы представления связаны с различными шаблонами:

 <?php if($template->canRender('comments')): $template->comments->render(); endif; ?>

Это очень полезнопуть.Я даже начал добавлять методы форматирования, заставляя все данные в объекте Template действовать как объекты TemplateData, которые для простоты имеют различные методы форматирования:

<?php echo $template['secret_code']->asHash('md5'); ?>
<?php echo $template['title']->asCase('capitalize'); ?>
1 голос
/ 19 февраля 2011

вы можете отправить массив
а также объект
что хочешь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...