我想在执行操作代码之前在每个操作中调用一个公共函数
示例
using System;
using System.Collections;
using System.Collections.Generic;
using TinCan;
namespace UnityTinCan
{
public class TinCanController
{
public RemoteLRS LRS = new RemoteLRS(
LRSConfig.host,
LRSConfig.username,
LRSConfig.password
);
}
}
所以在这种情况下,我希望应用程序首先打印"内部通用功能"之后"内部行动执行"。
答案 0 :(得分:1)
你可以使用beforeAction
它将在控制器
中的任何函数之前执行这是一个示例
public function beforeAction($action) {
$this->abrech_model = new Abrechnung;
if (!parent::beforeAction($action)) {
return false;
}
$this->_session = Yii::$app->session;
$this->view->params['langfile'] = 'de';
$this->layout = "template";
return true;
}
答案 1 :(得分:0)
您可以使用beforeAction()函数并返回一个数组,您需要在顶部声明一个公共数组变量,并在beforeAction()函数内分配此数组中的值。现在,您可以将此公共数组变量用于任何操作。 在这里,我正在编写您的控制器代码:
<?php
namespace backend\controllers;
use Yii;
use yii\web\Controller;
class SiteController extends Controller
{
public $arrData=[];
public function actionIndex()
{
print_r($arrData); // use array here
return $this->render('index');
}
public function beforeAction($action)
{
$arrData=[0,1,2,3]; // do here your stuffs
return $arrData;
}
}
答案 2 :(得分:-1)
在main.php文件中写下该功能代码,并为每个动作执行该功能