вывод значений контроллеров для просмотра

#php

#php

Вопрос:

Я новичок в классах и объектах.Здесь я создаю заявку на выставление счета.Итак, для контроллеров, как и во фреймворках, я взял их в качестве обработчиков.Итак, для пользовательского обработчика я сделал этот запрос:

 <?php
class UserHandler {
  public $db;
  public function __construct($db) {
    $this->db = $db;
  }
  public function index() {
    print_r($this->db->query("SELECT * FROM nt_user"));
  }
 }
  

Он показывает результат в массиве, как я хочу, вот так.

 Array ( [0] => 1 [id] => 1 [1] => xyz [name] => xyz [2] => 5d6305f2 [password] => 5d6305f2 [3] => 2011-05-24 14:59:17 [created_at] => 2011-05-24 14:59:17 [4] => 2011-05-24 14:59:17 [updated_at] => 2011-05-24 14:59:17 ) 
  

Теперь я хочу показать этот результат в шаблоне просмотра.В качестве шаблона просмотра используется другой файл, как отобразить все значения обработчиков в представлении.
Я хочу, чтобы страница просмотра отображалась следующим образом:

 name:
Password:
  

точно так же, как в окне входа.Итак, пожалуйста, скажите мне, как это сделать?

Комментарии:

1. вы используете определенный фреймворк или создали свой собственный?

2. Да, я делаю это только на php, а не на какой-либо фреймворк.

Ответ №1:

Вы используете определенный фреймворк или создали свой собственный? Zend Framework, например, был бы таким.

 <?php
class UserHandler extends Zend_Controller_Action {
  public $db;
  public function __construct($db) {
    $this->db = $db;
  }
  public function index() {
    $this->view->data = $this->db->query("SELECT * FROM nt_user"));
  }
 }
  

И затем в представлении

 <?php 
    //view.phtml
    var_dump($this->data);
  

Это даст вам дамп массива, который у вас есть в вашем сообщении. Я не собираюсь выполнять цикл и отображать материал, хотя, я уверен, вы можете разобраться с этим самостоятельно.

Ответ №2:

Вы можете создать статический класс, используя волшебные методы __get и __set со значениями, подобными:

 class Data {

    public static $atributos = array();

    public function __get($chave) {
        return array_key_exists($chave, $this->atributos) ? $this->atributos[$chave] : NULL;
    }

    public function __set($chave, $valor) {
        $this->atributos[$chave] = $valor;
    }

}
  

Чтобы задать значение, вы используете: Data::__set('view_data', $my_var);

В представлении вы просто делаете: Data::__get('view_data');

Я думаю, это сработает =)