代码之家  ›  专栏  ›  技术社区  ›  user759235

从类内访问yii2类

  •  1
  • user759235  · 技术社区  · 8 年前

    class CmsSettings extends ActiveRecord
    {
    
       public static function tableName()
       {
           return 'cms_settings';
       }
    
       //not working
       public static function run(){
    
           $results = CmsSettings::findOn(1):
    
           return $results;
    
       }
    
       // not working
       public static function check(){
    
           $results = CmsSettings::findOn(1):
    
           if($results->somesetting){
              return true;
           }
    
       }
    }
    
    2 回复  |  直到 8 年前
        1
  •  1
  •   vishuB    8 年前

    self

    参考 findOne()

    class CmsSettings extends ActiveRecord
    {
       public static function tableName()
       {
          return 'cms_settings';
       }
    
       public static function run() 
       {
          $results = self::findOne(1);
          return $results;
       }
    
       public static function check() 
       {
          $results = self::findOne(1);
    
          if ($results->somesetting) {
             return true;
          }
    
       }
    }
    
        2
  •  2
  •   rob006    8 年前

    static::findOne(1) self 或 CmsSettings

    class CmsSettings extends ActiveRecord {
    
        public static function run() {
            $results = CmsSettings::findOne(1);
    
            return $results;
        }
    
        // ...
    }
    
    class ChildCmsSettings extends CmsSettings {
    
    }
    

    ChildCmsSettings::run() 将返回的实例 ChildCmsSettings .但是如果你用 static

    public static function run() {
        $results = static::findOne(1);
    
        return $results;
    }
    

    run()