Autor | Zpráva | ||
---|---|---|---|
piiiiiiiip Profil |
#1 · Zasláno: 24. 5. 2016, 12:36:19
Neví někdo jak dostat v mvc data z db z modelu do controlleru tak aby se tam daly použít v podmínce?
|
||
Taps Profil |
#2 · Zasláno: 24. 5. 2016, 13:08:54
Jaky framework pouzivas?
|
||
piiiiiiiip Profil |
#3 · Zasláno: 24. 5. 2016, 13:13:59
Žádný.
|
||
Dan Charousek Profil |
#4 · Zasláno: 24. 5. 2016, 13:22:08
piiiiiiiip:
Tak obvykle controller je ten, co žádá model o nějaká data, potom není přeci problém s nimi pracovat. <?php MyController extends BaseController { public function doSomething($username, $password) { if($this->model->userExists($username, $password)) { echo 'User exists'; } else { echo 'Who are you?!'; } } } // odpovídající model ke controlleru class MyModel extends BaseModel { public function userExists($username, $password) { // ověření zda uživatel v db existuje a následný return true/false } } |
||
piiiiiiiip Profil |
#5 · Zasláno: 24. 5. 2016, 14:06:18
A jak to dostanu do proměnné?
|
||
Keeehi Profil |
#6 · Zasláno: 24. 5. 2016, 14:12:23
$variable = $this->model->userExists($username, $password); |
||
piiiiiiiip Profil |
To byla první věc co jsem zkoušel a nefunguje to.
Fatal error: Call to a member function showPages() on null in /controllers/LikeController.php on line 27 |
||
Keeehi Profil |
#8 · Zasláno: 24. 5. 2016, 14:44:26
Bez kódu si na to budeš muset přijít sám.
|
||
piiiiiiiip Profil |
#9 · Zasláno: 24. 5. 2016, 14:57:39
controller:
class LikeController extends Controller { public function process($parametrs) { if(isset($_SESSION['token'])){ $url = ''; model: class LikeManager { public function showPages() { return DbManager::dotazVsechny(' SELECT `url` FROM `like` '); } } |
||
Keeehi Profil |
A jak vypadal ten pokus, co nefungoval?
|
||
piiiiiiiip Profil |
#11 · Zasláno: 24. 5. 2016, 15:40:39
Takhle:
$id = $this->likeManager->showPages($url);
|
||
Keeehi Profil |
#12 · Zasláno: 24. 5. 2016, 16:23:02
var_dump($this->likeManager); var_dump($this->likeManager->showPages($url)); |
||
piiiiiiiip Profil |
#13 · Zasláno: 24. 5. 2016, 16:27:13
No nevypíše to nic když to hází chybu.
Fatal error: Call to a member function showPages() on null in /controllers/LikeController.php on line 27 Já tu hodnotu nemůžu z modelu vytáhnout. V pohledu to funguje (tam je mi to k ničemu) ale do toho controlleru to nedostanu. |
||
CZechBoY Profil |
#14 · Zasláno: 24. 5. 2016, 16:45:06
No a jak se tam dostane ta instance LikeManageru?
Instanci delas v konstruktoru nebo si to nejak predas? |
||
piiiiiiiip Profil |
#15 · Zasláno: 24. 5. 2016, 16:54:27
$likeManager = new LikeManager(); |
||
Keeehi Profil |
$this->likeManager = new LikeManager(); |
||
piiiiiiiip Profil |
#17 · Zasláno: 24. 5. 2016, 17:23:10
Tet mi var_dump vrací
object(LikeManager)#5 (0) { } array(1) { [0]=> array(2) { ["fb_url"]=> string(15) "932014706897735" [0]=> string(15) "932014706897735" } } |
||
Keeehi Profil |
#18 · Zasláno: 24. 5. 2016, 17:47:17
piiiiiiiip:
No výborně, teď už ti to funguje. To co máš v [#11] ti do $id uloží pole s výsledky, tak jak sis přál. |
||
piiiiiiiip Profil |
Furt to nefunguje.
|
||
Taps Profil |
#20 · Zasláno: 24. 5. 2016, 18:24:20
piiiiiiiip:
a co ti na tom nefunguje? jaká chyba se vypisuje? |
||
piiiiiiiip Profil |
#21 · Zasláno: 24. 5. 2016, 18:26:36
Žádná chyba se nevypisuje, když ale změním proměnnou tak se nic nestane.
|
||
piiiiiiiip Profil |
#22 · Zasláno: 24. 5. 2016, 19:28:01
Tak už jsem to dal dohromady.
|
||
piiiiiiiip Profil |
#23 · Zasláno: 25. 5. 2016, 16:35:43
Nevíte ještě jak dostat proměnnou z controlleru do viewu?
|
||
Keeehi Profil |
#24 · Zasláno: 25. 5. 2016, 17:26:58
piiiiiiiip:
Víme toho spousty. Jelikož ale nepoužíváš žádný framework, těžko budem radit, když nevíme, jak funguje tvůj případ. |
||
piiiiiiiip Profil |
#25 · Zasláno: 25. 5. 2016, 19:26:30
if(in_array($id, $pages)){ $this->status = 'done'; } else{ $this->status = 'notdone'; } |
||
Keeehi Profil |
#26 · Zasláno: 25. 5. 2016, 19:43:32
Můžeš nám prosím tě ukázat, jakým způsobem interaguje tvůj view s controlerem? Nejlépe něco co ti funguje, klidně jinou funkční stránku, jen potřebujeme vědět, kdo co kdy volá.
|
||
piiiiiiiip Profil |
Kontroler:
<?php class RegistrationController extends Controller { public function process($parametrs) { $this->head['title'] = 'Registration'; $userManager = new UserManager(); if ($_POST) { try { $userManager->registr($_POST['mail'], $_POST['password'], $_POST['passwordRepeat']); $this->addMessage('Registration was succesful.'); $this->reroute('home'); } catch (UserErrorManager $error) { $this->addMessage($error->getMessage()); } } $this->view = 'registration'; } } <form method="post"> E-mail<br /> <input type="mail" name="mail" /><br /> Password<br /> <input type="password" name="password" /><br /> Repeat password<br /> <input type="password" name="passwordRepeat" /><br /> <input type="submit" value="Register" /> </form> |
||
CZechBoY Profil |
#28 · Zasláno: 25. 5. 2016, 21:24:52
piiiiiiiip:
Tady zrovna v šabloně není žádná proměnná, takže nic nevykoukáme. |
||
Keeehi Profil |
#29 · Zasláno: 25. 5. 2016, 22:04:02
piiiiiiiip:
Nejvíce by asi pomohlo vidět tu část, kde se zobrazují ty hlášky, které se vytvářejí pomocí metody addMessage. |
||
piiiiiiiip Profil |
#30 · Zasláno: 26. 5. 2016, 10:19:48
Kontroller:
public static function showMessages() { if (isset($_SESSION['messages'])) { $messages = $_SESSION['messages']; unset($_SESSION['messages']); return $messages; } else return array(); } <?php foreach ($messages as $message) : ?> <?= $message ?> <?php endforeach ?> |
||
Téma pokračuje na další straně.
|
0