Goedendag, ik werk momenteel aan een article systeem in PHalcon, ben een beginner.

Ik heb een controller Users, met een login systeem. Ik heb een view (werkt goed, showt de login form)
en een router die verwijst naar de login pagina.

Codes:

Controller:
<?php
/**
 * Created by PhpStorm.
 * User: Yad
 * Date: 4-6-2018
 * Time: 11:27
 */

use Phalcon\Mvc\Controller;


class UsersController extends Controller

{

    public function indexAction(){
        $this->view->setTemplateBefore('dtt');

    }

    public function loginAction() {
        session_start();

        $sessions = $this->getDI()->getShared("session");

        if ($sessions->has("user_id")) {
            //if user is already logged we dont need to do anything
            // so we redirect them to the main page
            return $this->response->redirect("/admin");
        }

        if ($this->request->isPost()) {
            echo "hello world";
            $password = $this->request->getPost("password");
            $username = $this->request->getPost("username");

            if ($username === "") {
                $this->flashSession->error("return enter your email");
                //pick up the same view to display the flash session errors
                return $this->view->pick("login");
            }

            if ($password === "") {
                $this->flashSession->error("return enter your password");
                //pick up the same view to display the flash session errors
                return $this->view->pick("login");
            }

            $user = Users::findFirst([
                "conditions" => "username = ?0 AND password = ?1",
                "bind" == [
                    0 => $username,
                    1 => $this->security->hash($password)
                ]
            ]);

            if (false === $user) {
                $this->flashSession->error("wrong user / password");
            } else {
                $sessions->set("user_id", $user->id);
            }
        }

    }
}
?>


Router:

<?php

$router = $di->getRouter();

//route maken voor alle paginas

$router->add(
    '/admin/dashboard',
    [
        'controller' => 'Admin',
        'action'     => 'dashboard',
    ]
);

$router->add(
    '/admin/login',
    [
        'controller' => 'Users',
        'action'     => 'login',
    ]
);

$router->add(
    '/admin/login',
    [
        'controller' => 'Users',
        'action'     => 'index',
    ]
);


$router->add(
    '/admin/add-article',
    [
        'controller' => 'AddArticle',
        'action'     => '',
    ]
);

$router->add(
    '/articles/archive',
    [
        'controller' => 'ArticlesArchive',
        'action'     => '',
    ]
);

$router->add(
    '/admin/edit-article',
    [
        'controller' => 'EditArticle',
        'action'     => '',
    ]
);


$router->add(
    '/admin',
    [
        'controller' => 'Admin',
        'action'     => 'index',
    ]
);



$router->add(
    '/articles',
    [
        'controller' => 'Articles',
        'action'     => '',
    ]
);

$router->handle();
?>


Views/users/index.phtml:

<div class="py-5">
    <div class="container">
        <div class="row">
            <div class="col-md-12">
                <div class="card text-white p-5 bg-primary">
                    <div class="card-body">
                        <div class="alert alert-danger" role="alert"> This is a danger alert—check it out! </div>
                        <img src="http://localhost/dtt/public/img/dtt.png">
                        <h1 class="mb-4">Admin login</h1>
                        <form method="POST">
                            <div class="form-group">
                                <label>Username</label>
                                <input type="username"  name="username" class="form-control" placeholder="Username"> </div>
                            <div class="form-group">
                                <label>Password</label>
                                <input type="password" name="password" class="form-control" placeholder="Password"> </div>
                            <button type="submit" name="submit" class="btn btn-secondary btn-lg btn-block">Login</button>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>


Nou is het probleem het volgende:

In de router verwijs ik naar de controller USers, als action login. Dus zodra er een POST vrij komt, hoort hij iets te doen. Maar op deze manier verwijst hij direct door , zonder enkele layout naar de controller en zie ik dus niks, en doet hij niks. Alleen de controller laten zien.

Wat doe ik fout, ligt het aan de controller of de router?

Reageren