Iman Tumorang
Iman Tumorang

Reputation: 131

Yii2-Unknown Property – yii\base\UnknownPropertyException

I think i'm stucked. So I ask here..

I used Yii2 , basic template for my project.

Everythings good till i want to validate the models.

This is my models:

<?php
  namespace app\models;
  use yii\web\UploadedFile;
  class KTPForm extends \yii\base\Model {

public $nik;
public $ktpLama;
public $copyKK;
public $resiDesa;
public $izazah_raport;
public $suratPindah;
public $suratHilang;

public function rules() {
    return [
        ['nik', 'required'],
        [['ktpLama,copyKK,resiDesa,izazah_raport,suratPindah,suratHilang'], 'file', 'extensions' => 'gif, jpg, png, jpeg'],
    ];
}

public function saveImages() {
    $model = new KTPForm();

    $model->ktpLama = UploadedFile::getInstance($model, 'ktpLama');
    $model->copyKK = UploadedFile::getInstance($model, 'copyKK');
    $model->resiDesa = UploadedFile::getInstance($model, 'resiDesa');
    $model->izazah_raport = UploadedFile::getInstance($model, 'izazah_raport');
    $model->suratPindah = UploadedFile::getInstance($model, 'suratPindah');
    $model->suratHilang = UploadedFile::getInstance($model, 'suratHilang');

    $currdate = date("Y-m-d");

    $ktp = "";
    $kk = "";
    $resi = "";
    $izazah = "";
    $pindah = "";
    $hilang = "";

    if ($model->validate()) {

        $ktp = $model->nik . '_' . $currdate . '_ktp.' . $model->ktpLama->extension;
        $model->ktpLama->saveAs('upload/' . $ktp);

        $kk = $model->nik . '_' . $currdate . '_kk.' . $model->ktpLama->extension;
        $model->ktpLama->saveAs('upload/' . $kk);

        $resi = $model->nik . '_' . $currdate . '_resi.' . $model->ktpLama->extension;
        $model->ktpLama->saveAs('upload/' . $resi);

        $izazah = $model->nik . '_' . $currdate . '_izazah.' . $model->ktpLama->extension;
        $model->ktpLama->saveAs('upload/' . $izazah);

        $pindah = $model->nik . '_' . $currdate . '_pindah.' . $model->ktpLama->extension;
        $model->ktpLama->saveAs('upload/' . $pindah);

        $hilang = $model->nik . '_' . $currdate . '_hilang.' . $model->ktpLama->extension;
        $model->ktpLama->saveAs('upload/' . $hilang);

        return true;
    }
    return false;
}

}

This is my controller :

public function actionKtp() {
    if (Yii::$app->user->isGuest) {
        return $this->goHome();
    }

    $model = new \app\models\KTPForm();
    if ($model->load(Yii::$app->request->post())) {


        if ($model->saveImages()) {

            echo "God";
        } else {

            print_r($model->getErrors());
        }
    } else {
        return $this->render('_ktp', [
                    'model' => $model,
        ]);
    }
}

And this, what i got.

Please anybody want to help me.. :)

yii\base\UknownPropertyexception

Upvotes: 0

Views: 2528

Answers (1)

Matej P.
Matej P.

Reputation: 5383

When listing attributes in rules() array, they should be listed as an array of strings, like this:

public function rules() {
    return [
        ['nik', 'required'],
        [['ktpLama','copyKK','resiDesa','izazah_raport','suratPindah','suratHilang'], 'file', 'extensions' => 'gif, jpg, png, jpeg'],
    ];
}

not as one string: 'ktpLama,copyKK,resiDesa,izazah_raport,suratPindah,suratHilang'

Upvotes: 1

Related Questions