[MVC] Data from model to view
I'm very new to MVC and also to this forum. I needed some help, as i started to try out the MVC pattern, i get a little confused on how to send my collected mysql data, from the model to the view. Tried out alot of things but doesn't seen to work.
Is there a way this need to be assigned as i read somewhere before?
The way i'm doing it now is:
Function iside my model
Quote:
public function run() {
$sth = $this->db->prepare("SELECT * FROM articles");
$sth->execute();
$result = $sth->fetchAll();
var_dump($result);
$this->text = $result[0]['text'];
}
public function run() {
$sth = $this->db->prepare("SELECT * FROM articles");
$sth->execute();
$result = $sth->fetchAll();
var_dump($result);
$this->text = $result[0]['text'];
}
And mine view:
Quote:
echo $this->text;
Anyway, $this always refers to the object you are in. Outside of the object, $this either doesn't exist, or refers to another object (the object you are in at that moment). Transferring data from one object to the other through references to $this will therefore never work.
What you will have to do is either return the data from the model object by doing
at the end, or to create a getter in the model object that the view object can call to get the data:
(notice that I do use $this here, because you are still in the model object!)
Gewijzigd op 08/03/2013 12:26:11 door Erwin H
Je mag gewoon in het Nederlands praten.
Verder heb ik nu me function run() aangevuld met jou return, en de functie getText toegevoegd, werkt nog niet. Want wat ik me afvraag is inside of getText(); moet hij toch weten wat return $this->text; inhoud? Wordt verder nog nergens gedefnieerd. Ook probeer ik een manier te vinden om de functie in mijn view aan te roepen.
Maybe het is een stomme vraag. Maar de examples op het internet zijn te verschillend van elkaar, en zou dus een goede manier willen habben om dit op de rest van mijn functie's toe te passen
Wat is je basis voor wat betreft het gebruik van klassen in php? De vragen die je stelt zijn namelijk heel erg elementair en je zal denk ik eerst dat deel van scripten onder de knie moeten krijgen voor je aan een MVC model kunt gaan beginnen.
Natuurlijk, met het gebruik van classes zoals in OOP, heb ik minder moeite, daar roep ik me class op new class en vervolgens mijn functie. Echter ontbreekt er misschien wel wat basis, merk zelf dat ik het meer onder de knie begin te krijgen, en wou daarom een kijkje nemen in het MVC patroon. Door middel van een tutorial de basis opgezet en nu ben ik hier een beetje zelf in aan het knoeien. Als je tips heb hoe ik het dus kan doen ^ zou ik er erg blij mee zijn, als je tips heb hoe ik het mezelf beter aan kan leren, zou je me helemaal blij maken!
Wat ik zou aanraden is echt meer ervaring op te doen met het werken met klassen. Het gebruik van design patterns kan heel mooi zijn, veel werk schelen en je applicaties robuster maken, maar in het begin is het een behoorlijke kluif. Het is een extra abstractie laag die voor veel mensen moeilijk te doorgronden is in het begin. Voorwaarde om er doorheen te komen is wel dat je een goed begrip hebt van het werken met klassen in php.
Nu ben ik niet zo van de tutorials (dus ik heb geen lijst met goede linkjes), maar hier is in elk geval een begin:
http://www.phphulp.nl/php/tutorial/overig/oop-beginnershandleiding-php5/701/
Erwin H, bedankt, zal een stapje terug doen en kijken.
In de mapper staat je SQL (of een andere opslag methode) en daar maak je een domain-object aan. Dat domein object moet je functie in je mapper returnen naar je controller, je controller geeft dat door aan je view en dan kan je dat object in je view gebruiken.