Это может быть объяснено исчерпанием, но я новичок в программировании MVC, и хотя я немного разбираюсь в этом, я действительно борюсь с концепцией.Я работаю в php / codeigniter в системе, которая позволяет пользователю публиковать записи, а другие пользователи могут голосовать за них.Я сохранил записи в таблице MySQL записи и голоса в другой таблице голоса .
Поле, связывающее их вместе, будет записи->id и голосов-> entryId .
Итак, в моем контроллере у меня есть функция, которая вызывает модель и получает последние записи:
$data['recentEntries'] = $this->Entries->getRecentEntries($id);
где $ id - это номер идентификатора записи пользователя, которую вы хотите получить.
Я хочу, чтобы я мог отображать каждую запись вместе с соответствующими голосами для каждогозапись, и, как правило, без MVC, я бы просто нашел все записи для пользователя, затем в цикле foreach нашел бы и отобразил все голоса для каждого конкретного entryId .
Однако с MVCзаписи загружаются в переменную $ data ['latestEntries'], и я бы не стал использовать цикл foreach для запроса mysql в view .
Я скучаю по критической концепции MySQL или MVC здесь, которая должна позаботиться об этом довольнопросто, поэтому любое направление или направление будет невероятно оценено.
Заранее большое спасибо.
- Обновление -
Итак, я обновил контроллер so:
$data['recentEntries'] = $this->Entries->getRecentEntries($id);
$data['votes'] = array();
foreach ($data['recentEntries'] as $entry) {
array_push($data['votes'], $this->Votes->getVotes($entry->id));
}
Так что $ data ['voice'] теперь содержит голоса за все записи для конкретного пользователя. Правильный ли это способ? Если это так, то один раз в цикле представления view, как мне найти и отобразить соответствующие значения из этих $ data ['voice'] array?
Просмотр:
if (count($recentEntries)>0) {
foreach ($recentEntries as $row)
{
echo $row->content;
}
}