BU ÖRNEKDE veritabanı ile bağlantımızı kurarak oradan bilgi çekelim ve view üzerine aktaralım
Hatırlatma ve bilgi
Modeller veritabanınızla bilgi alışverişi sağlamak üzere tasarlanmış PHP sınıflarıdır.
Örneğin, diyelim ki STNC FW kullanarak bir blog yönetiyorsunuz.
Blog bilgilerinizi ekleme, yenileme ve çekme fonksiyonlarına sahip bir model sınıfınız olmalıdır.
Model sınıfları app/models/ dizini altına depolanmıştır.
Eğer isterseniz alt-dizinlere de yerleştirebilirsiniz.
AYRINTILI BİLGİ İÇİN DATABASE SINIFLARI KONUSUNA BAKINIZ
define('DB_TYPE', 'mysql');
define('DB_HOST', 'localhost');
define('DB_NAME', 'dbname');
define('DB_USER', 'root');
define('DB_PASS', 'şifreniz');
//bu kısım veritabanı tablolarının önekini verdiğimiz yerdir
define('PREFIX', 'dr_'); // onek
//veritabanı örneği
CREATE TABLE `dr_sayfalar` (
`id` int(11) NOT NULL AUTO_INCREMENT ,
`baslik` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`slug` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`icerik` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,
`resim` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
PRIMARY KEY (`id`),
INDEX `id` (`id`) USING BTREE
)
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
ROW_FORMAT=COMPACT
;
Router dosyası içine eklenecek olan
Router::any('model_view_db', '\Controllers\ornekController@model_view_db');
//http://cms.dev/model_view_db
controller dosyası: app\Controllers\OrnekController.php
//kontroller dosyası
namespace Controllers;
use \Core\View;
// controller namespace'ini kullanacağımı bildirdim
use \Core\Controller as controller;
class Ornek extends controller
{
/**
* Ornek 8 - model ve veritabanı iliskisi
* model
*/
public function model_view_db()
{
$sayfa_Model = new \Models\ornekController_Model();
$data = $sayfa_Model->sayfa_bilgisi();
$data_head['site_baslik'] = "Sağdıçlar Balıkçılık";
View::RenderTemplate('head_view', $data_head);
View::RenderTemplate('header_view');
View::Render('ornekler/data_aktarimi_db_view', $data);
View::RenderTemplate('footer_view');
}
}
Model dosyası :\app\Models\ornekController_Model.php
namespace Models;
class Anasayfa_Model extends \Core\Model
{
/**
* sayfa bilgisini verir
*
*/
public function sayfa_bilgisi()
{
$sql = "select * FROM " . PREFIX . "sayfalar where id=1";
return $data = $this->_db->fetch($sql);
}
}
View dosyası :\app\Views\ornekler\data_aktarimi_db_view.php
echo $baslik;
echo '\n';
echo $icerik;