MVC vraag

Status
Niet open voor verdere reacties.

googlemuscle

Gebruiker
Lid geworden
26 nov 2013
Berichten
199
Ik ben bezig met een website te maken voor mezelf met het MVC model.
Helaas vertellen de meeste tutorials op internet dat dingen die je leert op een andere website hartstikke fout zijn en zo kom je nooit erachter wat nou precies goed is.

Wat ik me dus afvroeg is waar ik bijvoorbeeld de inhoud voor een portfolio pagina inzet?
In de View of Model? En graag een voorbeeld als het kan;) Ben nog niet zo'n expert hiermee dus alle uitleg/voorbeelden zijn hartstikke welkom!
 
Het is data dus in je model, je view is alleen voor het weergeven van de pagina en je controller zorgt er voor dat je model-data naar je view gestuurd wordt :)
 
Oke dus in model doe ik bijv:
PHP:
$this->page = '<h3>Mijn portfolio</h3>'
enz?

Met weergeven van pagina bedoel je header en footer?
 
Laatst bewerkt door een moderator:
Dat zou kunnen qua model alhoewel HTML-tags eigenlijk view-data zijn.

In je view regel je alleen het echoën van variabelen, conditionele zaken en loops. In een view doe je geen bewerkingen op de data, dat zou je in je controller moeten doen.
 
Dus geen h3 tag bedoel je?
Zoja, kun een voorbeeldje geven hoe het wel moet?
 
Als het statische tekst is hoeft er in principe geen model aan te pas komen, dan is het gewoon Controller -> View.

Stel je hebt een SeoModel
PHP:
class SeoModel
{
  protected $description;
  
  public function setDescription($descr)
  {
      $this->description = $descr;
  }
  
  public function getDescription()
  {
      return $this->description;
  }
}
Dan doe je de bewerking in je controller en stuur je die door naar je view.
Stel je View-klasse heeft als __construct-parameters het pad naar de template en een array met data die je wilt gebruiken in de view.
PHP:
class Controller
{
    public function showPage()
    {
        $seo = new Seo();
        $seo->setDescription("Hier een omschrijving");
        
        $data = array('seo' => $seo);
        
        return new View("template.html", $data);
    }
}
En vervolgens ziet template.html er zo uit:
PHP:
<h3><?= $data['seo']->getDescription() ?></h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
<p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
<p>Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan