Я должен перечислить несколько элементов, которые поступают из источника базы данных A, и это: team_id, team_name и team_score (переведено ради объяснения).
Мне нужно зациклиться на них и отобразить эту информацию.
Итак, у меня на стороне DAO:
public function listOfTeams() { $select = $this->select() ->from(array('t'=>'teams'), array('cod_team','name','score')); return $this->fetchAll($select); }
На контроллере моей команды:
public function listAction() { $teamsDao = new TeamsDao(); $this->view->infoTeam = $teamsDao->listOfTeams(); }
И на вид:
<?php for($i = 0; $i < 30; $i++): ?> <?php if(isset($this->infoTeam[$i])): ?>
Теперь, на каждом из перечисленных элементов, мне нужно добавить дополнительную информацию.
Эта информация не поступает непосредственно из базы данных, но это результат некоторых вычислений.
Возьмем, к примеру, процент выполненных игр. (Перевод);
$totalGamesNumber > 0 ? ($gamesDone*100)/$totalGamesNumber : 0);
Итак, мне нужно собрать общий номер игр из базы данных, а затем для каждой команды мне нужно иметь количество выполненных игр, чтобы у меня мог отображаться процент.
$ GamesDone получают:
$gameTeamDao->countGamesPerTeam($gameVo, $teamVo);
Я застрял здесь, потому что я не вижу, где / как я должен позвонить и сделать метод для вычисления процента, чтобы позволить процент оставшихся игр быть представленными вместе с другими данными.
Могу ли я получить какую-то помощь из этой грязи?
Если вам нужно было написать помощника для этого, более или менее, как это будет выглядеть?
Заранее спасибо, MEM
PS – Если вам нужна более подробная информация. Я могу предоставить. Я мог бы простить что-то, что для меня принято, но это для тех, кто хочет помочь, это не так. Итак, просто дай мне знать. Еще раз спасибо.
Обновление: все переводы переведены на английский.
Поскольку вы используете ZF, вы можете сделать все эти вычисления в классе строки таблицы. Вот как. Скажем, ваш класс команд называется Application_Model_DbTable_Teams.
class Application_Model_DbTable_Teams extends Zend_Db_Table_Abstract { protected $_name = 'teams'; // table name protected $_id = 'teamId'; // table primary key // rows returned by fetchAll() will be of this class protected $_rowClass = 'Application_Model_DbRow_Teams'; }
Затем вам нужно создать класс Application_Model_DbRow_Teams, в который будут добавлены дополнительные вычисления
class Application_Model_DbRow_Teams extends Zend_Db_Table_Row_Abstract { public $percentGamesDone; public function init() { // This method gets called automatically by ZF when you instantiate a new // object from this class // This is where you will put your extra calculations, // like percentage games done, etc $this->percentGamesDone = $this->getPercentGames(); } public function getPercentGames() { $calculation = 3; // replace this with real data return $calculation; } }
Как только вы это сделаете, вы можете просто использовать любой из объявленных свойств строки (например, percentGameDone) непосредственно из представления, поскольку они будут вычислены правильно, когда вы инициируете строки.