возвращая переменную pdo rowCount - PullRequest
0 голосов
/ 13 марта 2019

У меня есть Usertable, в который я хочу включить нумерацию страниц в зависимости от количества записей в этой таблице, но я просто не могу понять, как мне получить доступ к значению $ counter.Я уже пытался в течение достаточно долгого времени, но на этом мои знания заканчиваются.Я надеюсь, что кто-то из вас может помочь мне.

Просмотр:

<?php if(($this->counter) > 5): ?> show pagination;

Пользовательская модель:

public function index()
{
    return $query = $this->db->sql('SELECT id, user, role, email, status, fname, lname, address FROM users');
}

UserController:

public function index()
{
    $this->view->users = $this->model->index();
    $this->view->counter= ;
    $this->view->title = 'Users';
    $this->view->render(USERS . 'index');
}

Mainmodel:

class Model
{

    public function __construct()
    {
        $this->db = new Database();
    }

}

Файл базы данных:

class Database extends PDO

    {

        public function __construct()
        {
            parent::__construct(DB_TYPE . ':host=' . DB_HOST . '; dbname=' . DB_NAME . '; charset=utf8', DB_USER, DB_PASS);
        }

        // SELECT
        public function sql($sql, $placeholders = array())
        {

            $query = $this->prepare($sql);
            foreach($placeholders as $key => $value)
                $query->bindValue($key, $value);
            $query->execute();
            $counter = $query->rowCount();
            return $query;
        }

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

Попросите трех программистов определить MVC, и вы, вероятно, получите четыре разных ответа.

Я собираюсь предложить небольшой поворот к предыдущему ответу, так как моя практика - сделать контроллер тощим.Должен ли контроллер знать о счетчике?Нет. На самом деле, я бы сказал, что он не должен знать об этом.

Когда ваш контроллер передает модель представлению, это должно быть концом этого.Представление может получить любые необходимые данные презентации из модели.

Ваша модель должна быть в состоянии сказать вам, сколько строк она готова предоставить вам, поэтому просто спросите об этом (вызовите метод) в представлении.

Не поймите меня неправильно: представление не место для серьезных вычислений;он должен делать только то, что необходимо для отображения вашей страницы.Это должно быть почти все HTML (или любой другой носитель, который вы используете).

Итак, после долгого объяснения, я бы сказал, пусть ваш взгляд просто спросит об этом у модели, которую дал контроллер.

0 голосов
/ 13 марта 2019

Обычно Контроллер должен получить доступ к значениям из Модели. Отсюда представление должно иметь возможность использовать значения, полученные контроллером. Идея - это Модель <-> Контроллер <-> Вид. Это был высокий уровень, но надеюсь, что он поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...