Страница 1 из 1

findOne возвращает не все значения

Добавлено: 2016.02.16, 00:48
ForceMan
Здравствуйте! Продолжаю изучение ФВ, пытаюсь сверить пароль введенный пользователем с паролем, который лежит в БД.

Код: Выделить всё

namespace app\models;

use yii;
use yii\base\Model;
use yii\db\ActiveRecord;

class Entry extends ActiveRecord
{
    public $email;
    public $password;

    public static function tableName()
    {
        return 'users';
    }

    public function rules()
    {
        return [
            [['email', 'password'], 'required'],
            ['password', 'validatePassword'],
        ];
    }

    // ПРОВЕРКА ПАРОЛЯ //
    public function validatePassword($password)
    {
        $user = $this->findByEmail($this->email);
        //print_r($user->attributes);exit;
        if (!$user || $user->password != $this->password) {
            $this->addError('password', 'Incorrect username or password.');
        }
    }


    // ПОИСК ПОЛЬЗОВАТЕЛЯ ПО EMAIL //
    public static function findByEmail($email)
    {
        return static::findOne(['email' => $email]);
    }
}
 
Есть такая модель.
$user->attributes возвращает вот такой массив:
Array ( [id] => 1 [login] => ForceMan [email] => [password] => [date_created] => 2016-02-15 23:49:51 )

Почему нет данных по email и password? В базе они существуют. Гугл результат не дал.

Re: findOne возвращает не все значения

Добавлено: 2016.02.16, 11:59
ElisDN
Удалите это:

Код: Выделить всё

public $email;
public $password; 

Re: findOne возвращает не все значения

Добавлено: 2016.02.16, 12:00
nepster
А вообще лучше так не делайте. Не держите валидацию и параметры в общей модели. Вам нужно создать form model унаследоваться от base/model и перенести rules туда.

Re: findOne возвращает не все значения

Добавлено: 2016.02.17, 11:37
ForceMan
ElisDN писал(а):Удалите это:

Код: Выделить всё

public $email;
public $password;
Спасиииибо, спасло ситуацию :) Видимо ночной кодинг позволяет не заметить мелочей.

Re: findOne возвращает не все значения

Добавлено: 2016.02.17, 11:37
ForceMan
nepster писал(а):А вообще лучше так не делайте. Не держите валидацию и параметры в общей модели. Вам нужно создать form model унаследоваться от base/model и перенести rules туда.
Хорошо, благодарю. Приму к сведению.
Можно закрывать, решено, всем спасибо!