За последние 24 часа нас посетили 18439 программистов и 1578 роботов. Сейчас ищут 1070 программистов ...

Call to a member function countAllUsers() on a non-object

Тема в разделе "PHP для новичков", создана пользователем iwarhill, 16 ноя 2018.

  1. iwarhill

    iwarhill Новичок

    С нами с:
    16 ноя 2018
    Сообщения:
    2
    Симпатии:
    0
    Всем привет. Вывожу количество записей из базы на главную страницу.Если перехожу по ссылке localhost/index все работает нормально. Но как только перехожу просто на localhost , получаю ошибку Call to a member function countAllUsers() on a non-object .

    controllers/index
    PHP:
    1. class Index extends Controller
    2. {
    3.    
    4.     function __construct()
    5.     {
    6.       parent::__construct();
    7.     }
    8.     function index()
    9.     {
    10.       // Title Page
    11.       $this->view->title = 'Title Page';
    12.       // Download and View Model countAllUsers
    13.       $this->view->users = $this->model->countAllUsers();
    14.       // Download View
    15.       $this->view->render('index/index');
    16.     }
    17. }
    models/index_model
    PHP:
    1. class Index_Model extends Model
    2. {
    3.   public $errors = array();
    4.   public function __construct()
    5.   {
    6.     parent::__construct();
    7.   }
    8.   public function countAllUsers()
    9.   {
    10.       $statement = $this->db->prepare("SELECT COUNT(*) count FROM users");
    11.       $statement->execute();
    12.        
    13.       foreach ($statement->fetchAll() as $user)
    14.       {
    15.         $all_users[$user->count] = new stdClass();
    16.         $all_users[$user->count]->count = $user->count;
    17.       }
    18.         return $all_users;
    19.   }  
    20.    
    21. }
    views/index
    PHP:
    1. <?php
    2.        
    3.   foreach ($this->users as $user)
    4.   {
    5.      echo '<div class="count-users">Всего регистраций:  '.$user->count.' </div>';
    6.   }
    7. ?>
    libs/controller
    PHP:
    1. <?php
    2. class Controller {
    3.     function __construct()
    4.     {
    5.         try
    6.         {
    7.             $this->db = new Database();
    8.         }
    9.         catch (PDOException $e)
    10.        
    11.         {
    12.             die('Не удалось установить соединение с базой данных.');
    13.         }
    14.         $this->view = new View();
    15.     }
    16.    
    17.     public function loadModel($name)
    18.     {
    19.        
    20.         $path = MODELS_PATH . $name.'_model.php';
    21.        
    22.         if (file_exists($path))
    23.         {
    24.             require MODELS_PATH .$name.'_model.php';
    25.            
    26.             $modelName = $name . '_Model';
    27.             $this->model = new $modelName();
    28.         }      
    29.     }
    30. }