veritabanında varchar olarak alan tanımlanmış durumdayken. model dosyası içine
public $file;
şeklinde değişken tanımladık. rules fonksiyonu içine aşağıdaki şekilde tanımlamayı ekliyoruz.
[[‘file’],’file’,’skiponEmpty’=>false,’extensions’=>’pdf’],
daha sonra view kısmında
<?php $form = ActiveForm::begin([‘options’=>[‘enctype’=>’multipart/form-data’]]); ?>
şeklinde bir düzenleme yapıyoruz. ve file için alan açıyoruz.
<?= $form->field($model, ‘file’)->fileInput() ?>
şimdi controller tarafında kodlamaya geçebiliriz. create fonksiyonunu aşağıdaki şekilde güncelliyoruz.
(tabi bu sırada backend\web içerisine birimresmiyazilar adında bir klasör açıyoruz ve terminali açarak aşağıdaki komutla yeni klasöre yazma izni veriyoruz.
chmod -R 777 /var/www/html/advanced/backend/web/birimresmiyazilar/)
use yii\web\UploadedFile;
tanımlamasını ekliyoruz.
public function actionCreate()
{
$model = new RandevuBirimler();if ($model->load(Yii::$app->request->post())) {
$dosyaadi=$model->birim_adi;
$model->file =UploadedFile::getInstance($model,’file’);
$model->file->saveAs(‘birimresmiyazilar/’.$dosyaadi.”.”.$model->file->extension);$model->resmi_yazi=’birimresmiyazilar/’.$dosyaadi.”.”.$model->file->extension;
$model->save();
return $this->redirect([‘view’, ‘id’ => $model->id]);
} else {
return $this->render(‘create’, [
‘model’ => $model,
]);
}
}
view dosyasında kayıdı incelerken link vermek istersek aşağıdaki şekilde bir kullanım yapabiliriz.
<?= DetailView::widget([
‘model’ => $model,
‘attributes’ => [
// ‘id’,
‘birim_adi’,
[
‘attribute’=>’islem_zamani’,
‘format’=>’raw’,
‘value’=>yardimci::mysql_tarihini_arayüze_cevir($model->islem_zamani)
],
[
‘attribute’=>’resmi_yazi’,
‘format’=>’raw’,
‘value’=>Html::a(
‘Resmi Yazısı’,
(‘//localhost’.(Yii::$app->getUrlManager()->getBaseUrl()).”/”.$model->resmi_yazi),
[‘target’=>’_blank’]
),],
],
]) ?>
İlk Yorumu Siz Yapın