比如在mydefaultlayout.phtml中说我有一个以这种方式声明的数组
$pages['words'] = array( 'APPLE', 'BALL', 'CAT', 'DOG', 'HELL', 'INK', 'PINK');
$pages['letters'] = array( 'A', 'B', 'C', 'D', 'H', 'I', 'K');
Mydefaultlayout.phtml是我在整个应用程序中的默认布局,因此每个控制器都可以使用它。那么如何在我的控制器中访问这些元素$pages['words']
和$pages['letters']
。
如何从控制器将它们分配给视图。
Class MyController extends Zend_controller_Action{
public function indexAction(){
if($_POST['page']=='ABC'){
//How do i assign this $pages['words'] and $pages['letters'] to the view
$view->myarray = $pages['words'];
$view->myarray = $pages['letters'];
}
}
}
我想到的一个解决方案是再次重新定义控制器中的$pages['words']
和$pages['letters']
并将其分配给视图
这是重复代码。如何访问控制器中的$pages['words']
和$pages['letters']
或直接查看
答案 0 :(得分:1)
您不应该从控制器访问任何视图变量。
最好在模型中定义数据$ page ['words']和$ page ['latters'],并在需要时从控制器和视图中访问它。
答案 1 :(得分:0)
这有点偏离袖口,但为什么在你的布局中定义了数组呢?
如果你需要在任何地方都可以使用它,为什么不在你的bootstrap&然后在需要时将它传递给视图/控制器?
所以在你的引导程序中你可以有这样的东西:
$pages['words'] = array( 'APPLE', 'BALL', 'CAT', 'DOG', 'HELL', 'INK', 'PINK');
$pages['letters'] = array( 'A', 'B', 'C', 'D', 'H', 'I', 'K');
$view->pages = $pages;
然后在您的观看中,您可以访问它们:
print_r($this->pages);
希望这有用,只需从记忆中获取。匆忙:))
答案 2 :(得分:0)
public function indexAction(){
$this->view->myarray = array('a','b','c','d');
}
布局中的
<?
foreach($this->myarray as $key => $value ){
echo " $key => $value <br>";
}
?>