2015-03-30 3 views
0

У меня есть проблема .. Когда я выполняю этот код:функции и переменные вопрос

public function korisnici(){ 
    $modelk = new Korisnici(); 
    $upit = $modelk::find()->asArray()->orderBy('id DESC')->all(); 
    $items = []; 
    foreach ($upit as $key => $value) { 
     foreach ($value as $kljuc => $vrijednost){ 
      $items[] = [$kljuc => $vrijednost]; 
     } 
    } 
    return $items; 
} 

private static $users = $this->korisnici(); 

Это дает мне эту ошибку: синтаксическая ошибка, неожиданный «$ это» (T_VARIABLE) ..

Can кто-то мне помогает, как я могу назвать эту функцию?

Вот весь мой класс:

class User extends \yii\base\Object implements \yii\web\IdentityInterface 
{ 
public $id; 
public $username; 
public $password; 
public $authKey; 
public $accessToken; 
public $arr; 

public function korisnici(){ 
    $modelk = new Korisnici(); 
    $upit = $modelk::find()->asArray()->orderBy('id DESC')->all(); 
    $items = []; 
    foreach ($upit as $key => $value) { 
     foreach ($value as $kljuc => $vrijednost){ 
      $items[] = [$kljuc => $vrijednost]; 
     } 
    } 
    return $items; 
} 

public $users = $this->korisnici(); 

/** 
* @inheritdoc 
*/ 
public static function findIdentity($id) 
{ 
    return isset(self::$users[$id]) ? new static(self::$users[$id]) : null; 
} 

/** 
* @inheritdoc 
*/ 
public static function findIdentityByAccessToken($token, $type = null) 
{ 
    foreach (self::$users as $user) { 
     if ($user['accessToken'] === $token) { 
      return new static($user); 
     } 
    } 

    return null; 
} 

/** 
* Finds user by username 
* 
* @param string  $username 
* @return static|null 
*/ 
public static function findByUsername($username) 
{ 
    foreach (self::$users as $user) { 
     if (strcasecmp($user['username'], $username) === 0) { 
      return new static($user); 
     } 
    } 

    return null; 
} 

/** 
* @inheritdoc 
*/ 
public function getId() 
{ 
    return $this->id; 
} 

/** 
* @inheritdoc 
*/ 
public function getAuthKey() 
{ 
    return $this->authKey; 
} 

/** 
* @inheritdoc 
*/ 
public function validateAuthKey($authKey) 
{ 
    return $this->authKey === $authKey; 
} 

/** 
* Validates password 
* 
* @param string $password password to validate 
* @return boolean if password provided is valid for current user 
*/ 
public function validatePassword($password) 
{ 
    return $this->password === $password; 
} 

}

Я пытаюсь изменить эту модель по умолчанию с Yii Framework, так что я могу войти, используя базу данных ...

+0

Вы можете вызвать его из другого метода в том же классе или на объект этого класса. Вы не можете инициализировать переменную (статический или любой ...). – jeroen

+0

Можете ли вы опубликовать пример этого? Потому что я не понимаю, как мне это сделать. @jeroen – user3002173

+0

Ну, это не было бы очень статическим значением, не так ли? – Rizier123

ответ

0

Похоже, у вас есть скопировал его из класса. Следующее будет работать как регулярная функция. До сих пор не уверен, где вы получаете $modelk = new Korisnici(); от

function korisnici(){ 
    $modelk = new Korisnici(); 
    $upit = $modelk::find()->asArray()->orderBy('id DESC')->all(); 
    $items = []; 
    foreach ($upit as $key => $value) { 
     foreach ($value as $kljuc => $vrijednost){ 
      $items[] = [$kljuc => $vrijednost]; 
     } 
    } 
    return $items; 
} 

print_r(korisnici()); 

EDIT: После того, как смотреть на весь ваш класс:

Вы должны использовать метод __construct.

public function __construct() 
{ 
$this->users = $this->korisnici(); 
} 
+0

Я получил свою модель $ modelk = new Korisnici(); от использовать приложение \ models \ Korisnici; – user3002173