Используя cakephp, как я могу отобразить серию данных без использования для каждого цикла? - PullRequest
0 голосов
/ 02 марта 2010

Приложение, которое я создаю, представляет собой теннисный розыгрыш, в котором есть список матчей, организованных по раундам. Я также дал матчам номер позиции как способ упорядочить их и управлять матчами, которые находятся на вершине розыгрыша. В розыгрыше 32 игроков в первом раунде 16 матчей, позиции в матчах от 1 до 16.

Рисование построено с использованием html и представляет собой не просто ряд строк таблицы, это имеет некоторую сложность. Таким образом, для отображения совпадений игроков / очков в представлении мне нужно разместить данные в местах, которые не соответствуют последовательности обычного дисплея, используя ряд строк.

Как я могу отобразить 16 совпадений данных без использования цикла foreach? Это лучше для каждой переменной в контроллере для одной записи?

Я думал, что в контроллере у меня может быть 16 переменных, но я бы предпочел изучать более сухие подходы к программированию, поскольку я изучаю php и cakephp.

Очень ценится.

Ответы [ 3 ]

1 голос
/ 02 марта 2010

Пока не отказывайтесь от foreach.

Я каждая строка данных "довольно сложная", возможно, это лучше, если вы переместите его в элемент.

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

Хотя, как уже говорила Сибидиба, было бы лучше, если бы вы сделали все это в своей модели, чтобы ваши взгляды оставались чистыми и ясными. Все данные, которые вы хотите отобразить за пределами вашей стандартной таблицы, уже должны быть готовы к отображению, подготовлены в вашей модели и переданы вашему представлению вашим контроллером. Как уже упоминалось, Set class - мощный инструмент, посмотрите, можете ли вы его использовать.

1 голос
/ 02 марта 2010

Просто отобразите элементы массива.

<?php echo $matches['Match'][0]['Player1']?>
<?php echo $matches['Match'][12]['Score']?>

Если вы хотите внимательно посмотреть на массив данных, чтобы выяснить, какие биты где, вы можете использовать pr ().

<?php pr($matches)?>

Вы можете просто отобразить определенную часть массива, они не привязаны исключительно к циклам foreach. Это подход, который я бы выбрал. Хотя вы должны знать, что, очевидно, что при изменении данных между раундами вам необходимо либо обновить, либо создать новое представление для каждого раунда.

0 голосов
/ 02 марта 2010

Если вы действительно не можете перебрать данные в вашем представлении (рассмотрите также вложенные циклы foreach), вы передаете неверные данные в представление!

Рефакторинг вашего контроллера для передачи данных в итерируемой форме, Контейнеры действительно хороши в CakePHP.

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