MVC nieuwsbericht en user
Nu ben ik bezig met het maken van het model 'nieuwsbericht', met deze vars:
$ID,$title,$content,$lang,$pubDate
Ik wil nog ook erbij welke persoon die post heeft aangemaakt, dus dacht ik ik zet deze erbij:
$userID,$userName
Maar is dit wel correct?
Neem ik niet beter een var $user die een instantie is van het model 'user' om dan $user->id en $user->name te kunnen doen?
Gewijzigd op 01/01/1970 01:00:00 door Hipska BE
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
// In nieuwsbericht
public function setUser(User $user) {
if(User::findById($user->getID() == NULL) throw new InvalidArgumentException("Geen geldige gebruiker");
$this->user_id = $user->getID();
}
public function getUser() {
return User::findById($this->user_id);
}
//Waar je het artikel weergeeft kan je dan iets doen als
echo "Gemaakt door: " . $nieuwsbericht->getUser()->getNaam();
?>
// In nieuwsbericht
public function setUser(User $user) {
if(User::findById($user->getID() == NULL) throw new InvalidArgumentException("Geen geldige gebruiker");
$this->user_id = $user->getID();
}
public function getUser() {
return User::findById($this->user_id);
}
//Waar je het artikel weergeeft kan je dan iets doen als
echo "Gemaakt door: " . $nieuwsbericht->getUser()->getNaam();
?>
Gewijzigd op 01/01/1970 01:00:00 door Jan geen
zoals je meestal ziet bij nieuws systemen
Bedankt Jelmer.
Dus stel voor om het op de 2de methode te doen? Dus data meteen joinen in de query en een $userID en $userName hebben in het model?
Mooi voorbeeld dat idealiter zo'n MVC model bedacht wordt, maar dat in combinatie met een genormaliseerde database er niet altijd 1 lijn te trekken is. Daarom is het goed MVC wel in je achterhoofd te houden, maar niet koste wat het kost aan dit te blijven vasthouden.
Ben wel benieuwd naar je hobbie projectje ;) Wat is je uiteindelijke doel? Vooral dingen leren of iets voor de publicatie?
Dus ja, ooit zou het allemaal moeten werken en online staan :p
Of bedoel je met publicatie de code publiceren? Ja ms komen er wel onderdelen van code naar buiten..
En doel is ook vooral wat bijleren van het oop gebruik in php en mvc (oop in JAVA kan ik al gedeeltelijk), waarvoor zijn hobby projectjes anders ;-)
Ik heb nu zo in gedachten dat ik er van uit ga dat de gebruikersnaam via een join meegekregen wordt en in het geval moest dat niet gebeurd zijn, dan vraagt ie als nog via een of andere manier die gebruikersnaam op.