0

我是 Zend 框架的新手。我在 netbeans 中制作了示例项目。它可以正常显示 index.phtml 。但是,我需要调用我的控制器。我尝试过的如下。

IndexController.php


<?php

class IndexController extends Zend_Controller_Action
{

    public function init()
    {

    }

    public function indexAction()
    {
        firstExample::indexAction();
    }    

}

而且我已经删除了 index.phtml 的所有内容(只是一个空白文件),因为我不想渲染这个视图。我的自定义控制器是:

firstExampleController.php

<?php
class firstExample extends Zend_Controller_Action{
    public function indexAction(){
        self::sum();
    }

    public function sum(){
        $this->view->x=2;
        $this->view->y=4;
        $this->view->sum=x + y;
    }
}
?>

firstExample.phtml

<?php
echo 'hi';
echo $this->view->sum();
?>

如何在 firstExample.php 中显示 sum 方法。

它只是在点击以下 URL 后显示空白页面。

http://localhost/zendWithNetbeans/public/

我想在点击上面的 URL 之后,首先执行到 public 文件夹中的 index.php。我没有更改 index.php 的内容

4

1 回答 1

1

您错误地使用了控制器(MVC),在您的情况下,控制器不应该执行任何业务逻辑 sum 方法。控制器只负责控制请求并将模型和视图粘合在一起。这就是你现在调用它时遇到问题的原因。

创建模型添加方法总和,并在您想要的任何控制器中使用。从控制器您可以将模型传递给视图。

这是示例: http: //framework.zend.com/manual/en/learning.quickstart.create-model.html它使用数据库,但没有必要与数据库一起使用。

基本上,您的总和示例可能如下所示:

class Application_Sum_Model {

 public function sum($x, $y) {
   return ($x + $y);
 }
}

class IndexContoler extends Zend_Controller_Action {

   public function someAction() {

    $model = new Application_Sum_Model(); 

    //passing data to view that's okay
    $this->view->y   = $y;
    $this->view->x   = $x;
    $this->view->sum = $model->sum($x, $y); //business logic on mode

   }
}

请阅读控制器是如何工作的, http: //framework.zend.com/manual/en/zend.controller.quickstart.html

于 2012-09-01T12:57:43.580 回答