Аз съм нов за YII използвате yii2 основни.всъщност искам да знам Как да се обадя на обща функция от действието на същия контролер. Да предположим, че съм в действие А за изпращане на поща. Трябва да позвъня на функцията за изпращане на поща B с три параметъра, която връща някаква стойност. Името на контролера ми е "Клиентски контролер". Как ще изпълня това. Моля, кажете ми решение. Благодаря
Отговори:
2 за отговор № 1За yii2, първо Направете папка, наречена "компоненти" в основната папка на проекта.
След това напишете своя персонализиран компонент в папката на компонентите, т.е. MyComponent.php или нещо такова.
namespace appcomponents;
use Yii;
use yiibaseComponent;
use yiibaseInvalidConfigException;
class MyComponent extends Component
{
public function MyFunction($param1,$param2){
return $param1+$param2; // (:)
}
}
Сега добавете компонента си в конфигурационния файл.
"компоненти" => [
"mycomponent" => [
"class" => "appcomponentsMyComponent",
],
]
Достъп в приложението ви:
Yii::$app->mycomponent->MyFunction(4,2);
0 за отговор № 2
Ако тя е споделена само в контролера, можете просто да създадете функция вътре в нея. Компонентите в Yii2 трябва да се използват за целите на приложението (да се споделят между повече от един контролер).
private function myFunction(a, b){
return a+b;
}
И тогава го извикайте отвсякъде в контролера си
public function actionSomeAction(){
if(myFunction(1,2)>4){...}
}
Също така идеите на компонента са да има повече функционалност, която е просто функция, например да има поведение на всички потребители.