Anasayfa » Codeigniter, Php

Codeigniter Dersleri – 16 – Url Helper (Url Yardımcısı)

14 Temmuz 2011 4.616 kez okundu 8 yorum
1 Star2 Stars3 Stars4 Stars5 Stars (2 oy,5 üzerinden : 5,00 )
Loading...

Bu dersimizde hazırlamış olduğumuz sipariş tablosuna düzenle ve sil adında iki işlev ekleyeceğiz. Bu linkleri url helper (url oluşturmada yardımcı) ile yapacağız. Öncelikle tablomuzu eski haline çevireceğiz. Geçen ders tablo kütüphanesi ile otomatik tablo yapmıştık.Şimdi o tabloya müdahale edeceğimiz için tekrar eski haline getireceğiz. Eski derslere geri dönüpte zaman harcamamanız için ben buradan eski hallerini tekrar vereceğim. Zaman kaybetmiş olmazsınız.

Önce view dosyamız olan pizza_view.php dosyamızı eski haline getiriyoruz.

<html>
<head>
<link rel="stylesheet" type="text/css"  href="<?php echo $base.'css/'.$css?>"><!-- Css dosyamızı burada include ettik -->
</head>
<body>
<div id="header">
<?php $this->load->view('pizza_header'); ?><!-- header dosyamızı burada include ettik -->
</div>
<div id="menu">
<?php 	$this->load->view('pizza_menu'); ?><!-- menü dosyamızı burada include ettik -->
</div>
 
<h3>Siparişler</h3>
 
<table border="1">
<tr><th>İsim</th><th>Pizza</th><th>İnce Kenar</th><th>Adet</th><th>Adres</th><th>Tip</th><th>Fiyat</th><th>Düzenle</th><th>Sil</th></tr>
<?php foreach($orders as $row){ ?>
<tr>
<td>
<?php echo $row->name;?>
</td>
<td>
<?php echo $row->pizza;?>
</td>
<td>
<?php if($row->thin_edge)
{
	echo "Evet";
}
else
{
	echo "Hayır";
}
?>
</td>
<td>
<?php echo $row->unit;?>
</td>
<td>
<?php echo $row->address;?>
</td>
<td>
<?php echo $row->type;?>
</td>
<td>
<?php echo $row->cost;?>
</td>
<td>
<?php echo anchor('pizza/order/'.$row->id,'Düzenle');?>
</td>
<td>
<?php echo anchor('pizza/del/'.$row->id,'Sil') ;?>
</td>
</tr>
<?php } ?>
 
</table>
 
 
<div id="footer">
<?php $this->load->view('pizza_footer'); ?><!-- footer dosyamızı burada include ettik -->
</div>
 
</body>
</html>

Bu arada dikkat ettiyseniz, yeni birşeyler ekledik kodumuza tablonun sonlarına bakarsanız sil ve düzenle isminde iki link var. Şimdi biraz bunları inceleyelim.

Url helper kullandığımız için url lerimiz daha kısa oluşturulabiliyor. Farkını şöyle göstereyim

<a href="http://localhost/CodeIgniter/index.php/pizza/order/1">Düzenle</a>
=
anchor('pizza/order/'.$row->id,'Düzenle')

Bakın neredeyse yarı yarıya kısaldı kodumuz.

Bu arada model dosyamızıda eski haline getirmeyi unutmayalım.(pizza_model.php)

1
2
3
4
5
6
7
8
function get_all_orders()
	{
		//$this->load->library('table');  //tablo kütüphanemizi yüklüyoruz.
		$query = $this->db->get('pizza');
		//$table = $this->table->generate($query);  //tablomuz oluşturulup $table değişkenine atılıyor.
        return $query->result();  
 
	}

Son olarak controller dosyamızıda eski haline getiriyoruz. (pizza.php)

1
2
3
4
5
6
7
8
function index()
	{		
		$this->load->model('pizza_model');
		$data=$this->pizza_model->genel();
		$data['orders'] = $this->pizza_model->get_all_orders(); //bütün siparişler tablo halinde hazır geliyor.
		$this->load->view('pizza_view',$data);
 
	}

Şimdi çalıştırıp yeni tablomuza bakabilirsiniz.En son hali şu şekilde olacak.

Bir sonraki dersimizde, bu hazırlamış olduğumuz linklerin fonksiyonunu yazacağız. Yani codeigniter da database den silme ve database i güncelleme, düzenleme işlemlerini yapacağız ve fonksiyonlarını hazırlayacağız.

<<< Önceki:

Sonraki: >>>


Facebookta Paylaş

8 yorum »

  • fatih dedi ki:

    artık yavaş yavaş codeigniter ın lavanta esintisi kokan codeigniterın bence arka bahçesi olan mysql sorgulamalarına geçiyoruz:) tşk

  • enes dedi ki:

    merhaba ben id,’Sil’) ;?>
    alanını yazdım http://localhost/CodeIgniter/index.php/pizza/order1Düzenle ekrana yazdığı yazı oldu aynı şey sil içinde geçerli helper (‘url’) yi tekrar mı yüklememiz gerekiyor sanıyorum MyMenu de zaten yapmıştık.

  • admin dedi ki:

    Sorunuzu tam anlayamadım ancak, eğer anchor yazarak yazdığımız link, eski tip linke gidiyor diyorsanız normali budur.

  • enes dedi ki:

    id.’sil’);>
    ekrana td içine http://localhost/CodeIgniter/index.php/pizza/order1Düzenle yazdı.tam yolu yazdı yani.bu arada php taglarını koymadım yorum da yazınca ekrana yazmıyor bu da bir açıkmıdır bunuda merak ettim 🙂 php? ? taglarını

  • enes dedi ki:

    “echo anchor(‘pizza/del’.$row->id.’sil’);” bu yine göstermedi.

  • admin dedi ki:

    Enes, ilk olarak galiba anchor fonksiyonunu yazarken row->id den sonra virgül yerine nokta koyuyorsun. Bu da sil veya düzenle kelimesini linke dahil ediyor ve öyle gösteriyor. Oradaki noktalama işaretlerine dikkat etmelisin. İkincisi ise php kodlarını yorum içerisine yazamaman bir açık değil aksine güvenlik için önlemdir. Eğer php kodlarını yoruma yazabiliyor olsan bu kodlar çalışır ve sayfada istenmeyen durumlara neden olur.

  • mahmut dedi ki:

    bir srun var sanırım ..

    satır 72 de olan kodlar bunlar
    ———
    $data[‘temiz_id’] = $query[‘id’];//tablodan verileri çekip arraya atıyoruz.
    $data[‘temiz_isim’] = $query[‘name’];
    $data[‘temiz_pizza’] = $query[‘pizza’];
    $data[‘temiz_tip’]= $query[‘type’];
    $data[‘temiz_adet’]= $query[‘unit’];
    $data[‘temiz_adres’] = $query[‘address’];
    if($query[‘thin_edge’]==’yes’){
    $data[‘temiz_kenar’][‘checked’] = TRUE;
    }else{
    $data[‘temiz_kenar’][‘checked’] = FALSE;
    }
    ————–
    düzenleye tıklayınca sayfa da aşağıdaki hatayı alıyorum.
    ——————————-
    ——————————-

    A PHP Error was encountered

    Severity: Notice

    Message: Undefined index: id

    Filename: controllers/pizza.php

    Line Number: 72
    A PHP Error was encountered

    Severity: Notice

    Message: Undefined index: name

    Filename: controllers/pizza.php

    Line Number: 73
    A PHP Error was encountered

    Severity: Notice

    Message: Undefined index: pizza

    Filename: controllers/pizza.php

    Line Number: 74
    A PHP Error was encountered

    Severity: Notice

    Message: Undefined index: type

    Filename: controllers/pizza.php

    Line Number: 75
    A PHP Error was encountered

    Severity: Notice

    Message: Undefined index: unit

    Filename: controllers/pizza.php

    Line Number: 76
    A PHP Error was encountered

    Severity: Notice

    Message: Undefined index: address

    Filename: controllers/pizza.php

    Line Number: 77
    A PHP Error was encountered

    Severity: Notice

    Message: Undefined index: thin_edge

    Filename: controllers/pizza.php

    Line Number: 78

  • admin dedi ki:

    Mahmut bey bu hatayı almanıza rağmen sayfa çalışmaya devam ediyor mu?

Yorum Bırakın!

Yorum yaz, yada kendi sitende trackback (Geri besleme) olarak ekle. Ayrıca RSS ile bu konuya üye olabilirsin. .

Nazik olun. Temiz tutun. Konu dışına çıkmayın. Spam yaratmayın.

Bu tagları kullanabilirsiniz:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Bloğumuz gavatarı desteklemektedir. Kendi gavatarınızı edinmek için lütfen Gravatar a üye olun.