« 1 2 »
Autor Zpráva
piiiiiiiip
Profil
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
Jaky framework pouzivas?
piiiiiiiip
Profil
Žádný.
Dan Charousek
Profil
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
A jak to dostanu do proměnné?
Keeehi
Profil
$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
Bez kódu si na to budeš muset přijít sám.
piiiiiiiip
Profil
controller:

    class LikeController extends Controller
    {
        public function process($parametrs)
        {

            if(isset($_SESSION['token'])){


                    $url =  '';        
Do $url má přijít ta proměnná.
model:
    class LikeManager
    {
        public function showPages()
        {
            return DbManager::dotazVsechny('
                SELECT `url`
                FROM `like`
            ');
        }
    }    
Keeehi
Profil
A jak vypadal ten pokus, co nefungoval?
piiiiiiiip
Profil
Takhle:
$id = $this->likeManager->showPages($url);
Keeehi
Profil
var_dump($this->likeManager);
var_dump($this->likeManager->showPages($url));
na tom místě vypíše co?
piiiiiiiip
Profil
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
No a jak se tam dostane ta instance LikeManageru?
Instanci delas v konstruktoru nebo si to nejak predas?
piiiiiiiip
Profil
            $likeManager = new LikeManager();
Keeehi
Profil
$this->likeManager = new LikeManager();
piiiiiiiip
Profil
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
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
piiiiiiiip:
a co ti na tom nefunguje? jaká chyba se vypisuje?
piiiiiiiip
Profil
Žádná chyba se nevypisuje, když ale změním proměnnou tak se nic nestane.
piiiiiiiip
Profil
Tak už jsem to dal dohromady.
piiiiiiiip
Profil
Nevíte ještě jak dostat proměnnou z controlleru do viewu?
Keeehi
Profil
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
if(in_array($id, $pages)){

                    $this->status = 'done';
                }                        
                    else{

                    $this->status = 'notdone';

                }      
Potrěbuju dostat status do pohledu.
Keeehi
Profil
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';
        }
    }
View:
<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
piiiiiiiip:
Tady zrovna v šabloně není žádná proměnná, takže nic nevykoukáme.
Keeehi
Profil
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
Kontroller:
        public static function showMessages()
        {
            if (isset($_SESSION['messages']))
            {
                $messages = $_SESSION['messages'];
                unset($_SESSION['messages']);
                return $messages;
            }
            else
                return array();
        }
View:
                    <?php foreach ($messages as $message) : ?>
                        <?= $message ?>
                    <?php endforeach ?>
« 1 2 »

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: