我们如何将数据从控制器传递到zend中的视图?

ktm*_*ktm 5 php zend-framework

我从zend框架1.11开始.我们如何在视图中从控制器传递不同的$ data值,就像在codeigniter中一样,我们这样传递.

$data['pass_one_thing'] = $this->model1->pass_all_mangoes();
$data['pass_another_thing'] = $this->model2->pass_all_oranges();
$this->load->view('viewfile', $data);
Run Code Online (Sandbox Code Playgroud)

然后在视图中,我们在同一个视图文件中获得带有foreach循环的$ pass_one_thing和$ pass_another_thing的值.

我如何从同一视图中的不同模型函数传递?

我们如何在zend得到这样的东西?我是新手,有点困惑.

Izn*_*ood 10

您在控制器中将其设置为:

$this->view->myVar = "something";
Run Code Online (Sandbox Code Playgroud)

然后从视图中访问它:

echo $this->myVar;
Run Code Online (Sandbox Code Playgroud)

或者使用像韦斯利这样的分配说.


Wes*_*orp 7

这可以完全相同:

$this->view->data = $data;
Run Code Online (Sandbox Code Playgroud)

或者使用assign功能:

$this->view->assign('data', $data);
Run Code Online (Sandbox Code Playgroud)

编辑:如何从同一视图中的不同模型函数传递不完全确定,但采取您的确切示例:

$this->view->data['pass_one_thing'] = $this->model1->pass_all_mangoes();
$this->view->data['pass_another_thing'] = $this->model2->pass_all_oranges();
$this->load->view('viewfile', $data);
Run Code Online (Sandbox Code Playgroud)

然后在您的视图中,您将访问这些槽:

$this->data['pass_one_thing']
$this->data['pass_another_thing']
Run Code Online (Sandbox Code Playgroud)