Codeigniter Dersleri – 3 – Parametreler
Üçüncü yazımda controllerden view dosyalarına parametreleri nasıl göndereceğimizi anlatacağım.
Bundan sonraki derslerde hep aynı projeyi geliştirerek devam edeceğiz. Bu sayede gereksiz kod yazımından kurtulmuş olacağız ve sonunda elle tutulur bir projemiz olacak.Projemiz temel çıtasıyla bir pizza sipariş sayfası olacak, Pizza siparişi verilen sayfa ve siparişlerin göründüğü sayfadan oluşacak.
Şimdi dersimize dönelim.Projemiz için application/controllers klasörü altına pizza.php dosyası oluşturalım ve içine aşağıdaki kodları ekleyelim.
<?php class Pizza extends CI_Controller { function __construct() { parent::__construct(); } function index() { $this->load->view('pizza_view'); } } ?> |
Şimdi de application/views klasörü altına pizza_view.php dosyası oluşturalım ve alttaki kodları ekleyelim.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" /> <title>Kodmerkezi.net Pizza Sipariş Sayfası</title> </head> <body> <h1>Siparişler</h1> Sipariş Yok </body> </html> |
Şimdi adres çubuğuna http://localhost/CodeIgniter/index.php/pizza/index yazalım ve projemizi çalıştıralım.
Buraya kadar herşey normaldi. Şimdi view dosyamıza nasıl parametre göndereceğimizi görelim. Controllers altındaki pizza.php dosyamızı aşağıdaki şekilde güncelleyelim.
<?php class Pizza extends CI_Controller { function __construct() { parent::__construct(); } function index() { $title='Kodmerkezi.net Pizza Sipariş Sayfası'; $header='<h1>Siparişler</h1>'; $orders='Sipariş Yok'; //Şimdi üstteki değişkenleri bir araya toplayalım. Bunun için hepsini data dizisinin içine atalım. $data['title']=$title; $data['header']=$header; $data['orders']=$orders; $this->load->view('pizza_view',$data); } } ?> |
Views altındaki pizza_view.php dosyamızı aşağıdaki şekilde güncelleyelim.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" /> <title><?php echo $title; ?></title> </head> <body> <?php echo $header; ?> <?php echo $orders; ?> </body> </html> |
Şimdi ne yaptık?
controller dosyasından view dosyasına göndermek istediğimiz değişkenleri bir array içine atıyoruz ve view dosyasını çağırdığımız komuta ikinci parametre olarak arrayimizi veriyoruz.
Üstteki kodda oluşturduğumuz array $data idi. Bunuda view dosyasına göndermek için
$this->load->view(‘pizza_view’,$data);
şeklinde kullanıyoruz.
View dosyasına geçersek arrayin parametrelerini direk olarak olarak view dosyasında kullanabiliyoruz. Örneğimizde $data arrayinde mesela ‘title’ değişkeni bulunmakta ve biz bunu pizza_view.php dosyasında direk olarak
<title><?php echo $title; ?></title>
şeklinde kullanabiliyoruz.
Şimdi bir kez daha adres çubuğuna http://localhost/CodeIgniter/index.php/pizza/index yazıp çalıştırabiliriz. Gönderdiğimiz parametreler sorunsuz adrese ulaşmış oldu.
Biz projemizde default olarak bu class ve fonksiyonu (yani pizza/index) kullanacağız. Bu yüzden her defasında adres çubuğuna bunları yazmak istemiyoruz. Bunun için bir routes dosyasında bir ayar yapacağız. Application/config/routes.php dosyasında
$route[‘default_controller’] = “welcome”;
satırsını buluyoruz ve
$route[‘default_controller’] = “pizza”;
ile değiştiriyoruz. Artık projemizi http://localhost/CodeIgniter/ şeklinde çalıştırabiliriz. Sistem otomatik olarak pizza classına yönlendiriyor ve oradanda default olarak index fonksiyonu çağrılıyor.
Şimdi de view dosyalarımızda php kodlarımızı nasıl daha kısa yazacağımızı görelim. Bunun için öncelikle application/config/config.php dosyamızda
$config[‘rewrite_short_tags’] = FALSE;
satırını buluyoruz ve bunu TRUE yapıyoruz. Daha sonra php kodlarımızı daha kısa yazabiliriz.
Örneğin:
<?php echo $title; ?> yerine
<?=$title?> şeklinde kullanabileceğiz
pizza_view.php dosyamızı aşağıdaki şekilde tekrar düzenleyebiliriz.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" /> <title><?=$title?></title> </head> <body> <?=$header ?> <?=$orders ?> </body> </html> |
Bu sayede kodlarımızı daha da kısaltmış olduk.
Bunlara da Göz Atmak İsteyebilirsiniz.
<<< Önceki: Codeigniter Dersleri – 2 – İlk Uygulamamız
Sonraki: Codeigniter Dersleri – 4 – GET Methodu >>>
Netbeans ta CI_Controller yazınca kabul etmiyor.sadece Controller yazmak gerekiyor.Notepad++ da tam tersini istiyor CI_ yazmassak hata veriyor.
Ben notepad++ kullanıyorum, Bu sorun birazda php sürümünden kaynaklanıyor yanlış bilgi vermeyeyim yanlışım varsa düzeltin ama php 5 ile birlikte phpde class kullanımı geldi, ve constructure yapısı değişmiş oldu. Bunu bir araştırın. Codeigniter php5 ve üzerinde biraz farklı, php5 altında ise biraz faklı tanımlanıyor.
Artık codeigniter ile ilgili böyle türkçe kaynaklar da görmek gerçekten güzel. Elinize sağlık gayet güzel anlatmışsınız. En zor olanda yazılı olarak programlama anlatmak. Tek bir şey merak ediyorum sisteminiz zannedersem wordpress, sizin kodladığınız bir blog varmı ci ile
makale.kodmerkezi.net için wordpress altyapısı kullanıyorum. Ancak bunun dışında kalan bölümlerin, (anasayfaya giderek görebilirsiniz) kodlaması ve tasarımı bana aittir. Kodlamayı ise codeigniter ile değilde klasik php ajax jquery ile oluşturdum. Benimde şu anda vakit buldukça üzerinde çalıştığım projeler var ancak yayında değiller.
Böyle Bir Kaynak Yayınladığınız İçin Çok Teşekkürler…
Ellerinize saglik böyle bir kaynaga ihtiyac vardi codeigniter.gen.tr’dede güzel örnekler olmasina ragmen bu kaynak ile bir tutulamayacak kadar güzel hazirlamissiniz ellerinize saglik cok sagolun isime cok yaradi…
çok işime yaradı teşekkürler.
gerçekten çok iyi devamını bekliyoruz
Teşekkürler.. Güzel anlatım..
Codeigniterden hem korkuyordum yeni bir şey diye hem öğrenmek istiyordum. Görsel eğitimlerden daha yararlı buldum anlatımını, paylaştığın için teşekkürler.
güzel ve zevkli bir anlatım.. emeğinize sağlık 🙂
ben pek yorum yazmam. ama bu codeigniter konuları için teşekkür etmeden de olmaz.
elinize, yüreğinize sağlık.
hocam öncelikle yazı icin teşekkürler fakat standart bır anlatım olmus söyleki
CI_Controller ,parent::__construct(); bu gıbı terımlerın ne olduğu anlatılırsa ben ve benım gıbı yenı baslayan arkadaşlara daha yardımcı olur. amacım eleştırmek değil bılmeyen bırının ıhtıyaclarını anlatmak.
Geri bildiriminiz için teşekkürler.
Merhaba,
İlgili videolarda dinledim ancak bu yazı ile Controller, View mantığını daha iyi anladım,
Teşekkür ederim. Eline sağlık…
Dersler için teşekkürler kardeşim, emeğine sağlık 🙂
Codeigniter hakkında başlangıcı bu bilgilerle yapmıştım.
Şu an ilk codeigniter tabanlı sitemi yapmış bulunmaktayım.
Emek veren herkese çok teşekkür ederim.
İleri seviye CODEİGNİTER paylaşımları yayınlamanızı bekliyorum.
Merhaba, öncelikle paylaşımınız ve anlatımınız için teşekkür ederim.
Özellikle benim gibi acemilerin çok işine yarayacaktır.
Yazıda belirtildiği gibi işlemleri yaptım ama “sayfa bulunamadı” hatası alıyorum. Nedeni hakkında bir fikriniz var mı? (sadece, yazıda pizza olarak yazan kısımları “tavsiye” olarak değiştirdim)
Yorum Bırakın!
En Son Yazılanlar
Codeigniter Dersleri
Kategoriler
Teknoloji Haberleri
Android Dersleri
Arşiv
İstatistikler
Sitemizin QR Kodu
Yeniliklerden İlk Sizin Haberiniz Olsun
KodMerkezi.Net Facebookta
En Çok Okunanlar
En Son Aranan Kelimeler
En Çok Oy Alanlar
Etiket Bulutu
İlginizi Çekecek Siteler
Arşiv
Yönetim
En Son Yapılan Yorumlar
En Çok Okunanlar