| 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