我是YII的新手使用yii2 basic.actually我想知道如何从同一个控制器的动作调用一个公共函数。假设我在行动A中发送邮件。我需要调用带有三个参数的发送邮件功能B,它会重新发送一些值。我的控制器名称是Customer Controller。我将如何执行此操作。请说我一个解决方案。谢谢
答案 0 :(得分:2)
对于yii2,首先创建一个名为&#34的文件夹;组件"在您的项目根文件夹中。
然后在组件文件夹.i.e MyComponent.php或其他任何内容中编写自定义组件。
namespace app\components;
use Yii;
use yii\base\Component;
use yii\base\InvalidConfigException;
class MyComponent extends Component
{
public function MyFunction($param1,$param2){
return $param1+$param2; // (:)
}
}
现在在配置文件中添加您的组件。
'组分' => [
'mycomponent' => [
'class' => 'app\components\MyComponent',
],
]
在您的应用中访问:
Yii::$app->mycomponent->MyFunction(4,2);
答案 1 :(得分:0)
如果它只在控制器中共享,你可以在其中创建一个函数。 Yii2中的组件应该用于应用程序目的(在多个控制器之间共享)。
private function myFunction(a, b){
return a+b;
}
然后从控制器中的任何一个调用它
public function actionSomeAction(){
if(myFunction(1,2)>4){...}
}
此外,组件的想法是拥有更多功能,只是一个功能,例如让所有用户的行为。