2016-03-08 168 views
1

HI我安装了yii2并编写了应用程序。我用git。当我将应用程序传输到服务器时。一切都很美好。但是,当我尝试登录我得到这个消息:Yii2 - 未知属性 - yii base UnknownPropertyException获取未知属性:yii web Application :: security

Unknown Property – yii\base\UnknownPropertyException 

获得未知属性:警予\网络\应用::安全

1. in C:\httpd\omg\omg-new\vendor\yiisoft\yii2\base\Component.php at line 142 
133134135136137138139140141142143144145146147148149150151 

      foreach ($this->_behaviors as $behavior) { 
       if ($behavior->canGetProperty($name)) { 
        return $behavior->$name; 
       } 
      } 
     } 
     if (method_exists($this, 'set' . $name)) { 
      throw new InvalidCallException('Getting write-only property: ' . get_class($this) . '::' . $name); 
     } else { 
      throw new UnknownPropertyException('Getting unknown property: ' . get_class($this) . '::' . $name); 
     } 
    } 

    /** 
    * Sets the value of a component property. 
    * This method will check in the following order and act accordingly: 
    * 
    * - a property defined by a setter: set the property value 
    * - an event in the format of "on xyz": attach the handler to the event "xyz" 

2. in C:\httpd\omg\omg-new\vendor\yiisoft\yii2\di\ServiceLocator.php – yii\base\Component::__get() at line 72 
3. in C:\httpd\omg\omg-new\common\models\User.php – yii\di\ServiceLocator::__get() at line 154 
148149150151152153154155156157158159160 

    * 
    * @param string $password password to validate 
    * @return boolean if password provided is valid for current user 
    */ 
    public function validatePassword($password) 
    { 
     return Yii::$app->security->validatePassword($password, $this->password_hash); 
    } 

    /** 
    * Generates password hash from password and sets it to the model 
    * 
    * @param string $password 

4. in C:\httpd\omg\omg-new\common\models\LoginForm.php – common\models\User::validatePassword() at line 45 
39404142434445464748495051 

    * @param array $params the additional name-value pairs given in the rule 
    */ 
    public function validatePassword($attribute, $params) 
    { 
     if (!$this->hasErrors()) { 
      $user = $this->getUser(); 
      if (!$user || !$user->validatePassword($this->password)) { 
       $this->addError($attribute, 'Incorrect username or password.'); 
      } 
     } 
    } 

    /** 

会是什么问题呢?我跑了作曲家更新。为什么只有安全性丢失?

+0

你的多行评论前面是否有斜线缺失?什么是你得到的错误信息,我只是看到代码?代码是错误消息吗? –

+0

是的斜线缺失这是yii异常,增加了详细的异常描述。 – MrGapo

回答

1

您应该使用getSecurity()

Yii::$app->getSecurity()->generatePasswordHash($password); 
+0

好吧可以尝试getSecutiry。 忘了提。在原始开发服务器上,一切工作正常。但是当我git克隆代码到其他服务器出现问题时。 – MrGapo

+0

一台服务器是窗口,另一台是Unix/Linux? – scaisEdge

+0

好吧试试getSecurity() 同样的问题:调用未知方法:yii \ web \ Application :: getSecurity() 这两个都是Windows系统。最终安装将在Linux上进行,但现在要解决问题,我希望双方都使用相同的系统。 我想有关于作曲家的东西? – MrGapo

-1

这是正确的: 的Yii :: $应用程序?

不是应该的Yii ::应用程序()

我不熟悉2.X呢。

1

好的我发现了一个错误。 运行作曲家更新时。它更新的作曲家,但在安装手册发现,你必须执行

作曲家全球需要“的FXP /作曲家资产插件:〜1.1.1”

这个选项我在新电脑全新安装忘记。现在一切正常