#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');
Я думаю, это сработает =)