수색…


응용 프로그램 구성 요소 만들기 및 사용

구성 요소를 만드는 단계 :

  • 프로젝트 루트 폴더에 components 라는 폴더를 만듭니다.
  • 구성 요소 폴더 내에 구성 요소 만들기 예 : MyComponent.php
namespace app\components;
    
use Yii;
use yii\base\Component;
use yii\base\InvalidConfigException;
    
    
class MyComponent extends Component
{
    public function demo()
    {
        return "welcome";
    }
}
  • config/web.php 파일에 구성 요소 등록
components' => [
    'mycomponent' => [
        'class' => 'app\components\MyComponent',
    ],
]

이제 컴포넌트 메소드를 사용할 수 있습니다.

namespace app\controllers;

use Yii;
     
class DemoController extends \yii\web\Controller
{
    public function actionTest()
    {
        echo Yii::$app->mycomponent->demo();
    }
}

구성 요소 기능을 사용하는 드롭 다운 목록

MyComponent.php에서 함수 만들기

    namespace app\components;

    use Yii;
    use yii\base\Component;
    use yii\base\InvalidConfigException;
    use yii\helpers\Url;
    use yii\helpers\ArrayHelper;
    
    use app\models\User;
    
        class MyComponent extends Component
        {
        
          // Function return list of  id & user Names,used for dropdownlist
          public function getUserID()
          {
            $code = User::find()->select('id,name')
            ->where(['is_deleted'=>'n'])
            ->all();
        
            $result = ArrayHelper::map($code, 'id', 'name');
            if($result)
                return $result;
            else
                return ["null"=>"No User"];
          }
        }

-> web.php의 구성 요소 등록

components' => [
        'mycomponent' => [
             'class' => 'app\components\MyComponent',
            ],
         ]

->보기에서 사용하십시오.

<?= $form->field($model, 'user_id')->dropDownList(Yii::$app->mycomponent->getUserID())?>


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow