Ошибка при валидации формы

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
myks1992@mail.ru
Сообщения: 147
Зарегистрирован: 2017.11.15, 23:54

Ошибка при валидации формы

Сообщение myks1992@mail.ru »

Всем привет! Совсем что-то не пойму никак что не так я делаю? Использую форму YII которая валидирует свои данные по Модели из AR. Мне необходимо проверить уникальность данных в таблице. Если убрать эту проверку форма работает без проблем. Так же использовал в другом месте подобную валидацию. Там тоже всё работает. Разница лишь в том, что атрибуты в рабочей форме совпадали, а здесь они разные... Подскажите что не так делаю. Вроде бы всё правильно.

Вот форма

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

<?php
/**
 * Created by Maxim Vorozhtsov
 * Email: myks1992@mail.ru
 * Date: 02.05.2019
 * Time: 16:11
 */

namespace app\modules\reg\forms;

use app\modules\reg\models\Discipline;
use Yii;
use yii\base\Model;
use yii\db\ActiveQuery;

class DisciplineEditForm extends Model
{
    public $kindId;
    public $ageId;
    public $nominationId;
    public $levelId;
    /**
     * @var Discipline
     */
    private $discipline;

    public function __construct(Discipline $discipline, array $config = [])
    {
        parent::__construct($config);
        $this->discipline = $discipline;
        $this->kindId = $discipline->kind_id;
        $this->ageId = $discipline->age_id;
        $this->nominationId = $discipline->nomination_id;
        $this->levelId = $discipline->level_id;
    }

    /**
     * {@inheritdoc}
     */
    public function rules()
    {
        return [
            [['kindId'], 'required'],
            [['kindId', 'ageId', 'nominationId', 'levelId'], 'integer'],
            [['kindId'], 'required'],
            [
                ['kindId', 'ageId', 'nominationId', 'levelId'],
                'unique',
                'targetClass' => Discipline::class,
                'targetAttribute' => ['kind_id', 'age_id', 'nomination_id', 'level_id'],
                'filter' => function (ActiveQuery $query) {
                    $query->andWhere(['<>', 'id', $this->discipline->id]);
                },
            ],
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function attributeLabels()
    {
        return [
            'kindId' => Yii::t('reg-discipline', 'Kind ID'),
            'ageId' => Yii::t('reg-discipline', 'Age ID'),
            'nominationId' => Yii::t('reg-discipline', 'Nomination ID'),
            'levelId' => Yii::t('reg-discipline', 'Level ID'),
        ];
    }
}
Вот ошибка
Copy Stacktrace Search Stackoverflow Search Google Exception
Unknown Property – yii\base\UnknownPropertyException

Getting unknown property: app\modules\reg\forms\DisciplineEditForm::kind_id
Аватара пользователя
Alexum
Сообщения: 683
Зарегистрирован: 2016.09.26, 10:00

Re: Ошибка при валидации формы

Сообщение Alexum »

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

...
 'targetAttribute' => ['kindId' =>'kind_id', 'ageId' => 'age_id', 'nominationId' => 'nomination_id', 'levelId' =>'level_id'],
...
Только что мешает сделать названия одинаковыми? Будет меньше путаницы.
myks1992@mail.ru
Сообщения: 147
Зарегистрирован: 2017.11.15, 23:54

Re: Ошибка при валидации формы

Сообщение myks1992@mail.ru »

Alexum писал(а): 2019.05.08, 09:39

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

...
 'targetAttribute' => ['kindId' =>'kind_id', 'ageId' => 'age_id', 'nominationId' => 'nomination_id', 'levelId' =>'level_id'],
...
Только что мешает сделать названия одинаковыми? Будет меньше путаницы.
Благодарю! Об этом не знал и вообще не подумал даже))
Ответить