Yii2 Date/Datetime Formatter
Yii Framework
Yii2 urlManager
config/main.php dosyasında bulunan UrlMaanger componenti ile Yii projelerinizde görünen Url yapınızı biçimlendirebilirsiniz.
basit haliyle :
‘enablePrettyUrl’ => true,
‘showScriptName’ => false,
],
Burada yaptıgımız işlemler;
Pretty url yi etkinleştimek : sadece bu işlemi yaptıgınızda projenizde var olan linklere tıkladıgınızda “?r=site/about” şeklinde değil “/site/about” şeklinde yönlendirilmeye başladığını göreceksiniz.
ancak bazı yönlendirmeler hala çalışmıyor:
çözümü için “web/” dizininde yeni bir “.htaccess” dosyası oluştuyoruz.
ve içeriği:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?*$ index.php?r=$1 [L,QSA]
ve artık linklerimiz çalışıyor.
ancak id veya parametre içeren sayfalara gittiğinizde hala “/user/update?id=2” urller görüyoruz. Hadi bunları da yönlendirelim,
bunun için yine config/main.php dosyamıza gidelim ve rules kısmına;
‘urlManager’ => [
‘enablePrettyUrl’ => true,
‘showScriptName’ => false,
‘rules’ => [
],
],
şeklinde ekleyelim.
artık urllerimiz sağlıklı çalışıyor.
Yii Framework Form İnput Default Date İnput
field($model, 'publishing_date')->textInput(["type"=>"date"])" ?>
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
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.;
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:
$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’);
Yii2 GridView::widget Search Filter Dropdown İnput
‘attribute’=>’attribute_name’,
‘filter’=>ArrayHelper::map(Model::find()->asArray()->all(), ‘ID’, ‘NAME’),
],
Yii2 OrderBy Kullanımı
$model::find()->orderBy([
‘id’ => SORT_DESC,
// (veya)
‘id’=>SORT_ASC
]);
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’,
],
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',
]
);
},
],
],