Welcome Guest, Not a member yet? Register   Sign In
can someone show me how to run router group?
#1

(This post was last modified: 06-28-2024, 12:49 AM by startup.)

i test code in codeigniter 4.5.3
in my router
PHP Code:
$routes->group('api', ['namespace' => 'app\controllers\api'], function($routes)
 {
 
$routes->post("login""AuthController::login");
 
$routes->get("valid-access","AuthController::accessDenied");
 
$routes->post("register","AuthController::register");
 
$routes->get("profile","AuthController::profile", ["filter" => "apiauth"]);
 
$routes->get("logout","AuthController::logout");
 
$routes->post("add-project","ProjectController::addProject");
 
$routes->get("list-project","ProjectController::listProjects");
 
$routes->get("delete-project/(:num)","ProjectController::deleteProjects/$1");
 }); 
in my controller with app/controller/api
PHP Code:
<?php

namespace App\Controllers\Api;
use 
CodeIgniter\HTTP\ResponseInterface;
use 
CodeIgniter\RESTful\ResourceController;
use 
CodeIgniter\Shield\Models\UserModal;
use 
CodeIgniter\Shield\Entities\User;

class 
AuthController extends ResourceController
{
    public function register(){
        $rule = [
            "username"  =>  "required|is_unique[user.username]",
            "email"    => "required|valid_email|is_unique[auth_identities.secret]",
            "password"  => "required"
        ];
        if(!$this->validate($rule)){

        }else{

        }
        $this->responseCreated($response);

    }
    public function login()
    {
        echo 'hello';
        exit();
        $rule = [
            "email"    => "required|is_valid",
            "password"  => "required"
        ];
        if(!$this->validate($rule)){
            $response = [
                "status" => false,
                "message" => $this->validator->getError(),
                "data"      => []
            ];
        }else{
            $credentials = [
                "email" => $this->request->getVar("email"),
                "password" => $this->request->getVar("password")
            ];
            $loginAttempt auth()->attempt($credentials);
            if(!$loginAttempt->isOK()){
                $response = [
                "status" => false,
                "message" => "Invalid Login Details",
                "data"      => []
            ];
            }else{
                $userObject= new UserModal();
                $userObject $userObject->findById(auth()->id));
                $token $userData->generateAccessToken("ThisismysecretKey");
                $au_token $token->raw_token;
                $response = [
                "status" => true,
                "message" => "User Logged in Successfully",
                    "data"      => [
                    "token"    => $au_token
                
];
                ];
            }
            return $this->responseCreated($response);
    }

    public function profile(){
        $userId auth()->id();
        $userObject= new UserModal();
        $userObject $userObject->findById($userId);    
        
return $this->responseCreated([
            "status" => true,
                "message" => "Profile Api Call",
                "data"      => []

        ]);

    }

    public function logout(){
        $session session();
    }

    public function accessDenied(){
        return $this->responseCreated([
            "status" => false,
                "message" => "invalid Access",
                "data"      => []

        ]);
    }


PHP Code:
+--------+-----------------------------+--------------------+--------------------------------------------------------------------+----------------+---------------+      
Method Route                      Name              Handler                                                            Before Filters After Filters |      
+--------+-----------------------------+--------------------+--------------------------------------------------------------------+----------------+---------------+      
GET    | /                          »                  | \App\Controllers\Home::index                                      |                |              |      
GET    profile                    »                  | \App\Controllers\Home::profile                                    |                |              |      
GET    register                    »                  | \CodeIgniter\Shield\Controllers\RegisterController::registerView  |                |              |      
GET    login                      »                  | \CodeIgniter\Shield\Controllers\LoginController::loginView        |                |              |      
GET    login/magic-link            magic-link        | \CodeIgniter\Shield\Controllers\MagicLinkController::loginView    |                |              |      
GET    login/verify-magic-link    verify-magic-link  | \CodeIgniter\Shield\Controllers\MagicLinkController::verify        |                |              |      
GET    logout                      »                  | \CodeIgniter\Shield\Controllers\LoginController::logoutAction      |                |              |      
GET    auth/a/show                auth-action-show  | \CodeIgniter\Shield\Controllers\ActionController::show            |                |              |      
GET    api/invalid-access          »                  | \App\Controllers\Api\AuthController::accessDenied                  |                |              |      
GET    api/profile                »                  | \App\Controllers\Api\AuthController::profile                      apiauth        apiauth      |      
GET    api/logout                  »                  | \App\Controllers\Api\AuthController:: logout                      |                |              |      
GET    api/list-project            »                  | \App\Controllers\Api\ProjectController::listProjects              |                |              |      
GET    api/delete-project/([0-9]+) | »                  | \App\Controllers\Api\ProjectController::deleteProjects/$1          |                |              |      
POST  register                    »                  | \CodeIgniter\Shield\Controllers\RegisterController::registerAction |                |              |      
POST  login                      »                  | \CodeIgniter\Shield\Controllers\LoginController::loginAction      |                |              |      
POST  login/magic-link            »                  | \CodeIgniter\Shield\Controllers\MagicLinkController::loginAction  |                |              |      
POST  auth/a/handle              auth-action-handle | \CodeIgniter\Shield\Controllers\ActionController::handle          |                |              |      
POST  auth/a/verify              auth-action-verify | \CodeIgniter\Shield\Controllers\ActionController::verify          |                |              |      
POST  api/register                »                  | \App\Controllers\Api\AuthController::register                      |                |              |      
POST  api/login                  »                  | \App\Controllers\Api\AuthController::login                        |                |              |      
POST  api/add-project            »                  | \App\Controllers\Api\ProjectController::addProject                |                |              |      
+--------+-----------------------------+--------------------+--------------------------------------------------------------------+----------------+---------------+      
                                                                                                                                                                        
Required Before Filters
forcehttpspagecache                                                                                                                          
 Required After Filters
pagecacheperformancetoolbar                                                      

i try to test url localhost:8080/shield/api/login but dont work
can explain why router dont go to controller404

Sorry! Cannot seem to find the page you were looking for.

i find this problem now i note someone need
i rewrite this code
PHP Code:
$routes->group('api', ['namespace' => 'app\controllers\api'], function($routes)

PHP Code:
$routes->group('api', ['namespace' => 'App\Controllers\api'], function($routes)

perfectly work
Reply
#2

Check your routes with the `spark routes` command.
See https://codeigniter.com/user_guide/incom...ing-routes
Reply
#3

(06-26-2024, 01:30 AM)startup Wrote: i test code in codeigniter 4.5.3
in my router
PHP Code:
$routes->group('api', ['namespace' => 'app\controllers\api'], function($routes)
 {
 
$routes->post("login""AuthController::login");
 
$routes->get("valid-access","AuthController::accessDenied");
 
$routes->post("register","AuthController::register");
 
$routes->get("profile","AuthController::profile", ["filter" => "apiauth"]);
 
$routes->get("logout","AuthController::logout");
 
$routes->post("add-project","ProjectController::addProject");
 
$routes->get("list-project","ProjectController::listProjects");
 
$routes->get("delete-project/(:num)","ProjectController::deleteProjects/$1");
 }); 
in my controller with app/controller/api
PHP Code:
<?php

namespace App\Controllers\Api;
use 
CodeIgniter\HTTP\ResponseInterface;
use 
CodeIgniter\RESTful\ResourceController;
use 
CodeIgniter\Shield\Models\UserModal;
use 
CodeIgniter\Shield\Entities\User;

class 
AuthController extends ResourceController
{
    public function register(){
        $rule = [
            "username"  =>  "required|is_unique[user.username]",
            "email"    => "required|valid_email|is_unique[auth_identities.secret]",
            "password"  => "required"
        ];
        if(!$this->validate($rule)){

        }else{

        }
        $this->responseCreated($response);

    }
    public function login()
    {
        echo 'hello';
        exit();
        $rule = [
            "email"    => "required|is_valid",
            "password"  => "required"
        ];
        if(!$this->validate($rule)){
            $response = [
                "status" => false,
                "message" => $this->validator->getError(),
                "data"      => []
            ];
        }else{
            $credentials = [
                "email" => $this->request->getVar("email"),
                "password" => $this->request->getVar("password")
            ];
            $loginAttempt auth()->attempt($credentials);
            if(!$loginAttempt->isOK()){
                $response = [
                "status" => false,
                "message" => "Invalid Login Details",
                "data"      => []
            ];
            }else{
                $userObject= new UserModal();
                $userObject $userObject->findById(auth()->id));
                $token $userData->generateAccessToken("ThisismysecretKey");
                $au_token $token->raw_token;
                $response = [
                "status" => true,
                "message" => "User Logged in Successfully",
                    "data"      => [
                    "token"    => $au_token
                
];
                ];
            }
            return $this->responseCreated($response);
    }

    public function profile(){
        $userId auth()->id();
        $userObject= new UserModal();
        $userObject $userObject->findById($userId);    
        
return $this->responseCreated([
            "status" => true,
                "message" => "Profile Api Call",
                "data"      => []

        ]);

    }

    public function logout(){
        $session session();
    }

    public function accessDenied(){
        return $this->responseCreated([
            "status" => false,
                "message" => "invalid Access",
                "data"      => []

        ]);
    }


PHP Code:
+--------+-----------------------------+--------------------+--------------------------------------------------------------------+----------------+---------------+      
Method Route                      Name              Handler                                                            Before Filters After Filters |      
+--------+-----------------------------+--------------------+--------------------------------------------------------------------+----------------+---------------+      
GET    | /                          »                  | \App\Controllers\Home::index                                      |                |              |      
GET    profile                    »                  | \App\Controllers\Home::profile                                    |                |              |      
GET    register                    »                  | \CodeIgniter\Shield\Controllers\RegisterController::registerView  |                |              |      
GET    login                      »                  | \CodeIgniter\Shield\Controllers\LoginController::loginView        |                |              |      
GET    login/magic-link            magic-link        | \CodeIgniter\Shield\Controllers\MagicLinkController::loginView    |                |              |      
GET    login/verify-magic-link    verify-magic-link  | \CodeIgniter\Shield\Controllers\MagicLinkController::verify        |                |              |      
GET    logout                      »                  | \CodeIgniter\Shield\Controllers\LoginController::logoutAction      |                |              |      
GET    auth/a/show                auth-action-show  | \CodeIgniter\Shield\Controllers\ActionController::show            |                |              |      
GET    api/invalid-access          »                  | \App\Controllers\Api\AuthController::accessDenied                  |                |              |      
GET    api/profile                »                  | \App\Controllers\Api\AuthController::profile                      apiauth        apiauth      |      
GET    api/logout                  »                  | \App\Controllers\Api\AuthController:: logout                      |                |              |      
GET    api/list-project            »                  | \App\Controllers\Api\ProjectController::listProjects              |                |              |      
GET    api/delete-project/([0-9]+) | »                  | \App\Controllers\Api\ProjectController::deleteProjects/$1          |                |              |      
POST  register                    »                  | \CodeIgniter\Shield\Controllers\RegisterController::registerAction |                |              |      
POST  login                      »                  | \CodeIgniter\Shield\Controllers\LoginController::loginAction      |                |              |      
POST  login/magic-link            »                  | \CodeIgniter\Shield\Controllers\MagicLinkController::loginAction  |                |              |      
POST  auth/a/handle              auth-action-handle | \CodeIgniter\Shield\Controllers\ActionController::handle          |                |              |      
POST  auth/a/verify              auth-action-verify | \CodeIgniter\Shield\Controllers\ActionController::verify          |                |              |      
POST  api/register                »                  | \App\Controllers\Api\AuthController::register                      |                |              |      
POST  api/login                  »                  | \App\Controllers\Api\AuthController::login                        |                |              |      
POST  api/add-project            »                  | \App\Controllers\Api\ProjectController::addProject                |                |              |      
+--------+-----------------------------+--------------------+--------------------------------------------------------------------+----------------+---------------+      
                                                                                                                                                                        
Required Before Filters
forcehttpspagecache                                                                                                                          
 Required After Filters
pagecacheperformancetoolbar                                                      
localhost
:8080

i try to test url localhost:8080/shield/api/login but dont work
can explain why router dont go to controller404

Sorry! Cannot seem to find the page you were looking for.

i find this problem now i note someone need
i rewrite this code
PHP Code:
$routes->group('api', ['namespace' => 'app\controllers\api'], function($routes)

PHP Code:
$routes->group('api', ['namespace' => 'App\Controllers\api'], function($routes)

perfectly work



If you  have a route write as login you must test on localhost as  

Code:
http://localhost:8080/login

you doesn't insert absoluth path , the path must insert as namespace (if the controller isn't in App\Controllers)
Reply




Theme © iAndrew 2016 - Forum software by © MyBB