0

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

Community
  • 1
  • 1
Iman Tumorang
  • 131
  • 2
  • 9
  • 25

1 Answers1

1

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'

Matej P.
  • 5,303
  • 1
  • 28
  • 44
  • I then this is happen. ![ConfigException](https://2.bp.blogspot.com/-H6J9YijSbUc/VbQdghhRzdI/AAAAAAAABsI/tfWZDwXgQgY/s320/Capture.PNG). – Iman Tumorang Jul 25 '15 at 23:39
  • For Yii2 validators to work, youz have to install Fileinfo extension to you PHP. How to install it depends on your server OS, web server settings, PHP version, etc. More information here: http://php.net/manual/en/fileinfo.installation.php , or try some of the answers provided in this question http://stackoverflow.com/questions/3579072/php-fileinfo-is-undefined-function/3579097#3579097 (they also talk about installing the same extension you need) – Matej P. Jul 26 '15 at 06:31