Reputation: 131
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.. :)
Upvotes: 0
Views: 2528
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