Yii2 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at [email protected] to inform them of the time this error occurred, and the actions you performed just before this error.
Devamı

More information about this error may be available in the server error log.

Merhaba üstteki can sıkıcı hatayı birçok sebeple almış olabilirsiniz şayet yii2 ile oluşturdunuz bir sayfayı yayına alırken bu hatayı aldıysanız ve yii2 seo url özellği için .htaccess yapılandırması yaptıysanız ve hata loglarında

$’RewriteEngine’, perhaps misspelled or defined by a module not included in the server configuration

gibi bir log varsa hatanızın çözümü için sunucunuzda aşağıdaki komutları çalıştırmanız veya sistem yöneticinizden talep etmeniz yeterli olacaktır.;

a2enmod rewrite
systemctl restart apache2

Yii2 image::watermark

Merhaba, Bu yazımızda yii2 de upload ettiğimiz görsellerin üstüne watermark görseli ekleme özelliğine değineceğiz.

Örnek kodlar:

$watermarkLogo=’../upload-dizini/logo/logo.png”;
$img=’../upload-dizini/gorsel-adi.png”;
$newImage = Image::watermark($img, $watermarkLogo, [50,50]);
//[50,50] Uygulacak watermark pozisyonu
$newImage->save(‘../../uploads/images/upload/yeni-resim.jpg’);

SweetAlert Confirm & Ajax Get Delete Confirm

swal({
title: ‘Bunu Galeriden Kaldırmak İstiyormusunuz?’,
text: ‘Görsel silinmeyecek saece galeriden kaldırılacak.’,
type: ‘warning’,
showCancelButton: true,
confirmButtonColor: ‘#3085d6’,
cancelButtonColor: ‘#d33’,
confirmButtonText: ‘Evet, Bunu Sil’,
cancelButtonText: ‘Hayır, Vazgeçtim’
}).then(function(isConfirm) {
if(isConfirm.value) {
var deleteId = id;
var request = $.ajax({
url: “?r=controller/deleteitem”,
type: “GET”,
data: {id: id},
dataType: “html”
});

request.done(function (msg) {
swal(
‘Silindi’,
‘Silme işlemi başarılı’,
‘success’
);
});

request.fail(function (jqXHR, textStatus) {
swal(
‘Silinemedi!’,
‘Silme işlemi gerçekleştirilemedi! Hata:’ + textStatus,
‘success’
);
});
}else{
swal(“İşlem iptal edildi”);
}

})

Yii Framework Not Found (#404) Fix Problem

Merhaba , Bu bölümde Yii2 ‘de Crud ile oluşturulmuş sayfalarda oluşan ve çok küçük olmasının yanında mide bulandırıcı olabilen bir hata’ya ve çözümüne yer vericez.
Devamı

Yii2 ‘de Crud sayfasına geldiniz Controller ve View ‘inizi oluşturdunuz ve sayfanızı görmek için çalışırdınız o da ne önünüzde kocaman bir

Not Found (#404)
Page not found.

The above error occurred while the Web server was processing your request.

Please contact us if you think this is a server error. Thank you.

Hatası 🙂

Bu hata aslında Crud kısmında kullandığınız “Base Controller Class” kısmında yazdığınız “yii\web\Controller” kısmından kaynaklı olması gereken “yii\web\controller”

Controller’ınızın en üst satırında bulunan “namespace backend\Controllers”; kısmını “namespace backend\controllers;” olarak düzeltirseniz sorun çözülecektir.

Yii2 Notlarım

Yii2

DetailView widget Html value

[
‘label’ => $model->getAttributeLabel(“status”),
‘value’ => function ($model) {
if ($model->status== 1) {
return Html::a(Yii::t(‘app’, ‘AKTİF’), [‘Site/index’, ‘id’ => $model->id], [‘class’ => ‘btn btn-success’]);
} else {
return Html::a(Yii::t(‘app’, ‘PASİF’), [‘Site/index’, ‘id’ => $model->id], [‘class’ => ‘btn btn-danger’]);
}
},
‘format’ => ‘html’,
],

Devamı

Model Label:

$model->getAttributeLabel('name');

Dropdown:

echo $form->field($model, ’category’)->dropdownList([
1 => ’item 1’,
2 => ’item 2’
],
[’prompt’=>’Select Category’]
);

Yii2 – Paggination

View

use yii\widgets\LinkPager;
.....
echo LinkPager::widget([
'pagination' => $pagination,
]);


Controller:


use yii\data\Pagination;
....
$mediaData = FileManager::find()->where(['file_status' => 1]);
$count = $mediaData->count();
$pagination = new Pagination(['totalCount' => $count]);
....
return $this->renderPartial('files',
[
'pagination'=>$pagination,
]);

Yii2- Redirect Back

return $this->redirect(Yii::$app->request->referrer ?: Yii::$app->homeUrl);

Html::DropDownList For Yii2

echo Html::dropDownList('select_name', [1, 3, 5], ArrayHelper::map($content, 'ID', 'VALUE_DEG'), [
'multiple' => 'multiple',
'options' => ['value1' => ['disabled' => true, 'class' => 'yourClass', 'style'=> 'yourStyle'],
'value2' => ['label' => 'value 2'],
]

Yii2 GridView Action Button

[
'class' => 'yii\grid\ActionColumn',
'template' => '{view} {update} {delete} {myButton}',
// the default buttons + your custom button
'buttons' => [
'myButton' => function (
$url,
$model,
$key
) { // render your custom button
return Html::a(
'',
$url,
[
'title' => 'Download',
'data-pjax' => '0',
]
);
},
],
],

Yii Framework Kurulum

Merhaba , zaman zaman Yii framework hakkında sayfamda bazı konulara yer vermiştim. Ancak yeni başlayacaklar için ve düzenli bir kaynak olması açısından bu bölümü oluşturmak istedim. Bu bölüm altında Yii Framework ile ilgili A’dan Z’ye bütün detayları adım adım paylaşmaya çalışacağım.
Devamı

Öncelikle Yii Framework ile kendi tanışmama gelecek olursak;
Yii ile aramızdaki ilişki bundan yaklaşık 2,5 – 3 yıl öncesine dayanıyor, Bir Php framework
üzerine yogunlaşmaya karar verdiğimde karşıma birbirinden güzel seçenekler geldi, Lavarel, CodeIgniter, Zend, Symfony bunlardan başlıcalarıydı.
Tabiki bu yol ayrımına geldiğinizde bir tercih söz konusu oluyor ve hemen araştırmaya başlıyorsunuz;
Hangi Framework daha iyi? gibi sorularla ortalıkta gezinmeye başlıyorsunuz.
O dönemde benim yaptığım karşılaştırmada çıkardığım sonuc Yii’nin performans ve Güvenlik konusunda diğer framework’lere göre daha cazip gelmesiydi.

Bu yazıyı yazarken’de üşenmedim gittim sizin için Yii’nin performans testini getirdim.

 

yiiFrameworkPerformanceComparison

 

Herneyse, biraz tanımak gerekirse Yİİ → Yes, it is, ‘den geliyor ismi. İsminden de anlaşılacağı gibi Yii’ framework’ün ortaya çıkış sürecinde mükemmellik aranmış olacak ki böyle bir isme sahip olmuş.

Bir zamanlar ülkemizde yapılan bir reklamı canlandırabilirsiniz gözünüzde ;

Bu değil, bu da değil, Bu hiç değil, Evet Bu!.. 🙂

Haydi bakalım şimdi de Yii Framework’ü indirip bilgisayarımıza kuralım.

Derslerimiz Yii-1 üzerine olacak http://www.yiiframework.com/download/ adresine gidip son versiyonu bilgisayarımıza indiriyoruz.

Yii Framework Versiyon

dosyaları htdocs altında yii isminde bir klasör oluşturup (yada tercihinize göre) buraya çıkartıyoruz.

 

yii-dizin

 

Burada Yii Framework’ün çalışabilmesi için bazı özellikler var bunları http://localhost/yii/requirements/ adresine giderek bir kontrol ediyoruz.

 

 

yii-requirements

 

 

Resimde de gördüğünüz gibi benim devam etmem için bir problem yok, Oracle ve MSSQL konusunda birkaç uyarı var sadece bunlar bizim için önemsiz.

Devam edelim.

Çıkarttığımız dizini incelerken “demos” klasörünü göreceksiniz. Burada 4 farklı yii framework örnek projesi mevcut.

Bunlardan Demo Blog prijesini inceleyerek başlayalım ve daha sonra kendi blog sayfamızı oluşturalım.

Yii Framework UserIndentity

class UserIdentity extends CUserIdentity
{
private $_id;

public function authenticate()
{
$user=User::model()->findByAttributes(array('username'=>$this->username));
if($user===null)
$this->errorCode=self::ERROR_USERNAME_INVALID;
else if($user->password!==md5($this->password))
$this->errorCode=self::ERROR_PASSWORD_INVALID; Devamı

else
{
$this->_id=$user->id;
$this->setState('lastLoginTime', $user->last_login_time);
$this->errorCode=self::ERROR_NONE;
}
return !$this->errorCode;
}

public function getId()
{
return $this->_id;
}
}