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

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
ForceMan
Сообщения: 14
Зарегистрирован: 2016.02.15, 15:52
Контактная информация:

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

Сообщение 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? В базе они существуют. Гугл результат не дал.

Аватара пользователя
ElisDN
Сообщения: 5658
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

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

Сообщение ElisDN »

Удалите это:

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

public $email;
public $password; 

nepster
Сообщения: 838
Зарегистрирован: 2013.01.02, 03:35

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

Сообщение nepster »

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

Аватара пользователя
ForceMan
Сообщения: 14
Зарегистрирован: 2016.02.15, 15:52
Контактная информация:

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

Сообщение ForceMan »

ElisDN писал(а):Удалите это:

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

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

Аватара пользователя
ForceMan
Сообщения: 14
Зарегистрирован: 2016.02.15, 15:52
Контактная информация:

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

Сообщение ForceMan »

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

Ответить