我是班级和对象的新手。在这里我正在制作一个发票的应用程序。所以对于控制器,就像在框架中我把它们作为处理程序。所以对于UserHandler 我提出了这个问题:
<?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:
就像登录框一样。请告诉我该怎么做?
答案 0 :(得分: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);
这将为您提供帖子中的数组转储。我不会做循环和显示的东西,但我相信你可以自己解决这个问题。
答案 1 :(得分:0)
您可以使用魔术方法__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');
我认为它会起作用=)