Nasıl birden fazla değişkenler için Kod Ateşleyici URI parçası olabilir?

4 Cevap php

Ben Konum ve Kategori tabanlı veritabanı sonuçları filtrelemek için izin veren bir uygulama yazıyorum.

Birisi Golf kategorisi altında Liverpool, aramak için ise URI olurdu /index.php/search/Liverpool/Golf.

Birisi Yer ama kategoriye göre arama istesin, onlar /index.php/search/Liverpool gönderilen olurdu

Ancak, birisi bu yeri arama tarafından yakalanmış olacağını çünkü /index.php/search/Golf kullanmak mümkün olacak sadece kategoriye göre filtreleme istesin.

/index.php/search/Golf kabul edilmesi için en iyi uygulama yolu var mı? Bu iki sorgular farklı yapmak için URI eklemek için başka ne gibi bazı iyi uygulamalar? /index.php/search/category/Golf belki?

O /index.php?search&category=Golf Ben önlemek için çalışıyorum tam olarak ne olduğunu özelliklerini göstermeye başlıyor rağmen.

4 Cevap

Muhtemelen olursa olsun onlar için ne arıyorsunuz relavent URI kesimleri tutmak için iyi olacaktır.

index.php/LOCATION/CATEGORY

Onlar bir yerde ilgilenen değilse o sisteme bir dolgu pass:

index.php/anywhere/golf

Sonra kod sadece sadece etkinliğini görmek istiyorsanız belirlemek için her yerde belirli bir dize için kontrol edin. Ben linkleri veya forumlarda (ve onlar URI dize kendilerini yazarak olmadığını) ya onları yönlendirme olacak böylece sadece o karşı beklediğiniz bilgi ve testlerini geçerken güvenli olması gerektiğini varsayalım.

Try using $this->uri->uri_to_assoc(n) described here http://codeigniter.com/user_guide/libraries/uri.html (half way down on page)

temelde bu gibi url yapısı olacaktır:

mysite.com / index.php / arama / konum / liverpool / kategori / golf

NOTE: the parameters are optional so you dont have to have both in there all the time. you can just as well do

mysite.com/index.php/search/location/liverpool/ and

mysite.com / index.php / arama / kategori / golf

eleman aradığınız eğer FALSE döndürecektir bu şekilde yok

Yukarıda Tom önerilen biçim kullanmak ve daha sonra parametrelerin değerini belirlemek için aşağıdaki satırlar boyunca bir şey yapmak.

$segment_array = $this->uri->segment_array();        
$is_location_searched = array_search('location', $segment_array);
if($is_location_searched && $this->uri->segment($is_location_searched +1))
{
    $location = $this->uri->segment($is_sorted+1);
}

http://lucenebook.com/#/p:solr/s:wiki bir göz ve sol navigasyon üzerinde biraz etrafında tıklayın. Yaptığınızda url ne yakın dikkat edin. Ben gerçekten pek çok nedenden dolayı bu düzeni seviyorum.

  1. Bu SEO dostu.
  2. "Meraklı" insanlar / mix adresler maç ve hala uygun bir arama giderir yapabilirsiniz.
  3. Bu sadece iyi görünüyor!

Tabii ki, hüner şey inşa nasıl, kod gerçekten. Onu dışarı sıralamak için bir kaç hafta sürdü, ama sonunda o sitenin benim kendi sürümü var. Ajax daha iyi arama motorları gibi, çünkü sadece, dayalı ajax değil. Ajax faturaları ödemek yok.