Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: MVC pytanie lopatologiczne
Forum PHP.pl > Forum > PHP
pitos
Pytam bo sie juz pogubilem z tym MVC przeczytalem wszystkie artykuly i posty na php.pl

Zrobilem tak

index.php
  1. <?php
  2. if($_REQUEST['action']){
  3. require_once('actions/'.$_REQUEST['action'].'_action.php');
  4.  
  5. $action = new $_REQUEST['action'];
  6. $action->$_REQUEST['method'];
  7.  
  8. $smarty->assign('');
  9. $smarty->display();
  10.  
  11. }
  12. ?>


index tworzy kontroler i uruchamia metode

  1. <?php
  2. class soccer_score extends controller{
  3.  
  4. public function show_league_score(){
  5. require_once('/model/soccer_score_model.php');
  6. $mv = new show_league_score();
  7. $mv->show_league_score();
  8. }
  9. }
  10. ?>

w modelu soccer_score_model.php
  1. <?php
  2. class modelAndView
  3. {
  4. private $db;
  5. private $_model;
  6. private $_view;
  7.  
  8. public function __construct()
  9. {
  10. $this->db = sPdo::getInstance;
  11. }
  12.  
  13. public function getModel()
  14. {
  15. return $this->_model;
  16. }
  17. public function setModel($model_arr)
  18. {
  19. $this->_model = $model_arr;
  20. }
  21. public function addToModel($arr_key, $model_value)
  22. {
  23. $this->_model[$arr_key] = $model_value;
  24. }
  25. public function setView($view)
  26. {
  27. $this->_view = $view;
  28. }
  29. public function getView()
  30. {
  31. return $this->_view;
  32. }
  33. }
  34. ?>

  1. <?php
  2. class soccer_score_model extends modelAndView{
  3.  
  4. public function show_league_score(){
  5. $this->addToModel('game',$this->get_game());
  6. }
  7.  
  8. public function get_game(){
  9. $query = $this->setQuery();
  10. $stmt = $this->db->query($query);
  11. return $stmt->fetchAll();
  12. }
  13. }
  14. ?>

Za widok uzywam Smarty
i teraz nie wiem czy dobrze robie bo nie wiem jak pobrac dane z modelu w index.php
sticker
wg mnie to kontroler wywołuje widok na podstawie wywołanej metody w kotrolerze. U Ciebie jest tak jakbyś wiedział co wyświetlić zanim cokolwiek zostanie przez skrypt zrobione
Reigon
Zwroc kontener ModelAndView z wykonywanej akcji do kontrolera glownego. Nie widze gdzie tworzysz ModelAndView, ale chyba go zapomniales utworzyc....w Twoim przypadku z show_league_score
Wtedy kontroler bedzie mogl sie odniesc do tego samego kontenera ModelAndView i pobrac sobie widok i szablon (wczesniej ustawiony np. w tej samej akcji).

Widze natomiast, ze niepotrzebnie dziedziczysz z typowego kontenera, ktory ma za zadanie przechowywac dane...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.