如何在zend中调用另一个控制器的方法?

时间:2016-02-05 08:46:49

标签: zend-framework

我在酒店模块中有一个控制器SearchController,我在这个控制器中有一个方法搜索,如下所示。

public function searchAction()
{

  // Code for search
  // want to call getlatlng method
}

现在我在同一个模块中创建了一个新的控制器DistanceController 在distance controller.my getlatlng方法中创建了一个getlatlng方法。

 public function getlatlng()
  {
         $location = $_REQUEST['lat'].','.$_REQUEST['lng'];
         return $location;
  }

现在我想在getlatlng方法中调用searchAction方法。它返回当前位置的纬度和经度。我使用post或get将纬度和经度传递给getlatlng函数。

那么如何在searchAction方法中调用getlatlng方法?

1 个答案:

答案 0 :(得分:1)

您可以这样调用,如果您使用的是ZF版本1.x:

class SearchController extends Zend_Controller_Action 
{
    public function searchAction() {
        echo "search_action_from_SearchController";
        require_once ('DistanceController.php');
        $distanceCtrl = new DistanceController($this->_request, $this->_response);
        $distanceCtrl->xyzAction();
        die;
    }
}

class DistanceController extends Zend_Controller_Action 
{
    public function getlatlng() {
        echo "getlatlng_from_DistanceController";
        die;
    }
}
  

输出:

URL: http://www.example.com/search/search
    search_action_from_SearchController
    getlatlng_from_DistanceController