Welcome Guest, Not a member yet? Register   Sign In
Correct URI and Route but Page Won't Load (Blank Page)
#1

(This post was last modified: 06-07-2022, 04:16 PM by AgBRAT.)

I am still pretty new to MVC and routing especially but I have managed to get the majority of my site navigable with $routes->setAutoRoute(FALSE). HOWEVER, one of my methods won't load even though the URI appears to be correct. 
GET:  http://localhost/images/view_image/628460ec47d68 is shown in my browser inspect mode as 200 ok status. The page is still blank though.
Here is the route in question (a part of a group route function): 
PHP Code:
$routes->get('view_image/(:alphanum)''Images\View_Image::index/$1', ['as' => 'view_image']); 

Here are my routes, I am using named routes because they made more sense to me.

PHP Code:

Code:
/*
 * --------------------------------------------------------------------
 * Route Definitions
 * --------------------------------------------------------------------
 */

// Default Route
$routes->get('/', 'Home::index');

// Login and Registration
$routes->match(['get', 'post'], '/users/register', 'Users::register', ['as' => 'register']);
$routes->match(['get', 'post'], '/users/login', 'Users::login', ['filter' => 'noauth', 'as' => 'login']);

// Admin Routes
$routes->group('/admin', ['filter' => 'auth'], function ($routes) 
{
    $routes->post('/dashboard', 'admin::dashboard');
});

// Users Routes
$routes->group('users', ['filter' => 'auth'], function ($routes)
{
    $routes->get('dashboard', 'Users\Members::index', ['as' => 'member_dashboard']);
    $routes->get('profile/(:segment)', 'Users\Members::profile/$1', ['as' => 'member_profile']);
    $routes->get('edit_profile/(:segment)', 'Users\Members::edit/$1', ['as' => 'edit_profile']);
});

// Images Routes
$routes->group('images', ['filter' => 'auth'], function ($routes) {
    $routes->get('gallery', 'Images\Gallery::index', ['as' => 'gallery']);
    $routes->get('manage_uploads', 'Images\Gallery::manage', ['as' => 'manage_uploads']);
    $routes->match(['get', 'post'], 'upload', 'Images\Gallery::upload', ['as' => 'upload_image']);
    $routes->get('upload', 'Images\Gallery::edit/$1', ['as' => 'edit_upload']);
    $routes->match(['get', 'post'], 'upload', 'Images\Gallery::store', ['as' => 'store_upload']);
    $routes->get('manage_uploads/(:alphanum)', 'Images\Gallery::delete/$1', ['as' => 'delete_upload']);
    $routes->get('view_image/(:alphanum)', 'Images\View_Image::index/$1', ['as' => 'view_image']);
    $routes->get('view_image/(:alphanum)', 'Images\View_Image::action/$1', ['as' => 'image_action']);
});

// Logout
$routes->get('logout', 'Users::logout', ['as' => 
'logout']); 

And here is the Controller::method/$1 not displaying '\App\Controller\Images\View_Image.php' where I have sent the parameter $viewkey:

PHP Code:

Code:
class View_Image extends BaseController 
{
    protected $imageModel;
    protected $actionModel;
    protected $commentModel;
    protected $subscribeModel;

    public function __construct()
    {
        $this->imageModel = new ImageModel();
        $this->actionModel = new ActionModel();
        $this->commentModel = new CommentModel();
        $this->subscribeModel = new SubscribeModel();

        if (session()->get('role') != 0) {

            echo 'Access denied';
            exit;
        }
    }

    public function index(string $viewkey) 
    {
        $likes = $this->actionModel->getLikes($viewkey);
        $dislikes = $this->actionModel->getDislikes($viewkey);
        $views = $this->actionModel->getViews($viewkey);
        $favorites = $this->actionModel->getFavorites($viewkey);
        
        $singleImage = $this->imageModel->getImage(['viewkey' => $viewkey]);

        $data = [];

        $data = [
            'image'        => $singleImage,
            'tags'          => preg_replace('/-/', ' ', explode(',', $singleImage->tags)),
            'title'        => $singleImage->title,
            'views'        => get_num_words($views),
            'likePercent'  => get_percentage($likes + $dislikes, $likes , 0),
            'modified'      => get_date_words($singleImage->modified_at, date('Y-m-d H:i:s')),
            'likes'        => get_num_words($likes),
            'dislikes'      => get_num_words($dislikes),
            'favorites'    => get_num_words($favorites),
            'comments'      => get_num_words($this->commentModel->countComments($viewkey)),
            'userLiked'    => $this->actionModel->userLiked($viewkey),
            'userDisliked'  => $this->actionModel->userDisliked($viewkey),
            'userFavorited' => $this->actionModel->userFavorited($viewkey),
            'userSubscribed'=> $this->subscribeModel->userSubscribed($singleImage->uploader),
            'userCommented' => $this->commentModel->userCommented(session()->get('username')),
            'imageComments' => $this->commentModel->getComments($viewkey),
            'script'        => 'js/view_image',
        ];

        echo view('templates/header', $data);
        echo view('templates/navigation', $data);
        echo view('images/view_image', $data);
        echo view('templates/footer', $data);
    } 
And here is the the part of the view where I route_to the Controller:

PHP Code:

Code:
<?php
if (! empty($gallery)) {
    
    foreach ($gallery as $row) {
?>    
    <div class = 'image-object'>
                <a href='<?= route_to('view_image', esc($row->viewkey)); ?>' title='<?= esc($row->title);?>'>
                <img src='<?= base_url('/assets/img/uploads/' . $row->filename); ?>' alt='<?= esc($row->title);?>'></a> 
Reply


Messages In This Thread
Correct URI and Route but Page Won't Load (Blank Page) - by AgBRAT - 06-07-2022, 04:06 PM



Theme © iAndrew 2016 - Forum software by © MyBB