我通过以下代码从其他控制器调用了我的操作:
Yii::import('application.controllers.ProvinceCityController');
$obj =new ProvinceCityController($id); // preparing object
echo $obj->actiondynamiccities(20);
我可以通过邮寄请求发送我的数据(20)吗?因为actiondynamiccities()
得到$_POST
并做某事......
答案 0 :(得分:0)
如果需要将POST变量发送到控制器,则只能使用AJAX。
如果需要,您可以通过GET发送密钥以保护其安全性
Yii::import('application.controllers.ProvinceCityController');
$obj =new ProvinceCityController($id); // preparing object
echo $obj->actiondynamiccities(20, /*SECRET*/);
并在ProvinceCityController中
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 ids也要获得这种秘密。
答案 1 :(得分:0)
当一个函数在多个控制器中多次使用时,您必须维护一个单独的类,该类可以通过它的方法提供此功能。
Ex:创建一个类SharedFuncs
并将该文件保存在components
文件夹
<?php
class SharedFuncs
{
public function hello($name) {
return "Helloo..!, ".ucfirst($name);
}
}
?>
并访问项目中任何位置的方法。
<?php
$utils=new SharedFuncs();
echo $utils->hello('maryam');
?>