【问题标题】:Yii2 Basic - How I use common function functionality in yii2 actionYii2 Basic - 我如何在 yii2 操作中使用常用函数功能
【发布时间】:2016-08-25 05:19:50
【问题描述】:

我是 YII 的新手,使用 yii2 basic.actually 我想知道如何从同一个控制器的动作中调用一个通用函数。假设我在行动 A 中发送邮件。我需要用三个参数调用发送邮件函数 B,它会返回一些值。我的控制器名称是客户控制器。我将如何执行此操作。请给我一个解决方案。谢谢

【问题讨论】:

  • 将此函数扩展为像 stackoverflow.com/questions/37648935/… 这样的通用助手类。或者创造特质或行为。
  • 感谢您的评论,但我不明白!请解释如何从另一个动作类发送参数
  • 发送参数是什么意思?您只需将它们作为函数的参数传递。

标签: yii yii2 yii2-advanced-app yii-components yii2-basic-app


【解决方案1】:

对于yii2,首先在你的项目根文件夹中创建一个名为“components”的文件夹。

然后在 components 文件夹中编写您的自定义组件。即 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);

【讨论】:

  • 更改 Yii::$app->MyComponent->MyFunction(4,2); to Yii::$app->mycomponent->MyFunction(4,2);
【解决方案2】:

如果它只在控制器内共享,您可以在其中创建一个函数。 Yii2 中的组件应该用于应用目的(在多个控制器之间共享)。

  private function myFunction(a, b){
      return a+b;
  }

然后从控制器中的任何地方调用它

public function actionSomeAction(){
   if(myFunction(1,2)>4){...}
}

此外,组件的想法是拥有更多的功能,而不只是一个功能,例如拥有所有用户的行为。

【讨论】:

    猜你喜欢
    • 2017-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多