我可以通过请求帖子将变量从一个动作发送到另一个动作吗


can i send variable from action to another action by request post?

我通过以下代码从其他控制器调用了我的操作:

Yii::import('application.controllers.ProvinceCityController');
$obj =new ProvinceCityController($id); // preparing object
echo $obj->actiondynamiccities(20); 

我可以通过邮寄请求发送我的数据(20)吗?因为actiondynamiccities()得到$_POST并做一些事情。。。

如果需要将POST变量发送到控制器,则只能使用AJAX。

如果你想,你可以通过GET发送它,并附上一个密钥来保护它的安全

 Yii::import('application.controllers.ProvinceCityController');
  $obj =new ProvinceCityController($id); // preparing object
  echo $obj->actiondynamiccities(20, /*SECRET*/); 

在省级城市控制器

public function actionDynamicCities($id = null,  $key = null)
{
   $id = isset($_POST['id']) ? $_POST['id'] : $id;
   if(!isset($_POST['id'] && strcmp($key, /*SECRET*/) != 0)
   { throw Exception here... }
  ...continue with code
}

此外,考虑获得这种秘密,即使是POST ID。

当一个函数在多个控制器上多次使用时,您必须维护一个单独的类,该类可以通过它的方法提供此功能。

Ex:创建一个类SharedFuncs并将该文件保存在components文件夹中

<?php
    class SharedFuncs 
    {
        public function hello($name) {
            return "Helloo..!, ".ucfirst($name);
        }
    }
?>

并在项目中的任何位置访问这些方法。

<?php
    $utils=new SharedFuncs();
    echo $utils->hello('maryam');
?>